Oracle PL/SQL开发基础(第三十四弹:RAISE_APPLICATION_ERROR)
RAISE_APPLICATION_ERROR
在子程序内部使用时,能从存储子程序中抛出自定义的错误消息。这样就能将错误报告给应用程序而避免范围未捕获异常。
语法如下:
RAISE_APPLICATION_ERROR(error_number, error_message, [keep_errors]);
error_number是范围在-20000到-20999之间的负整数,error_message是最大长度为2048字节的字符串,keep_errors是一个可选的布尔值,True表示新的错误将被添加到已经抛出的错误列表中,False表示新的错误将替换当前的错误列表,默认为False。
RAISE_APPLICATION_ERROR
只能在存储的子程序中调用。当被调用时,将结束当前的子程序并返回一个用户自定义的错误代码和错误消息给应用程序,这些错误代码和错误消息可以像任何的Oracle错误一样被捕获。
看一个例子:
CRAETE OR REPLACE PROCEDURE registeremployee(...)
AS
...
BEGIN
IF ... THEN
RAISE_APPLICATION_ERROR(-, '员工编号不能为空');
ELSIF ... THEN
RAISE_APPLICATION_ERROR(-, '员工已存在');
END IF;
...
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-, '插入数据时出现错误!异常编码:'
|| SQLCODE
|| '异常描述:'
|| SQLERRM);
END;
别的子程序或语句块调用这个过程时,如果有相应的异常,就会像普通的Oracle错误一样被捕获。
作者:艺术就是爆炸
来源:CSDN
原文:https://blog.csdn.net/lianjiww/article/details/77074979
版权声明:本文为博主原创文章,转载请附上博文链接!
Oracle PL/SQL开发基础(第三十四弹:RAISE_APPLICATION_ERROR)的更多相关文章
- Oracle PL/SQL开发基础(第三十三弹:EXCEPTION_INIT)
如果有一些异常并没有异常名称,比如一些ORA-开头的异常并没有一个友好的预定义的异常定义,此时在WHEN子句中无法使用具体的异常名称,必须要使用OTHERS异常处理器进行捕捉.通过EXCEPTION_ ...
- oracle PL/SQL语法基础
目录 数据类型 定义变量 PL/SQL控制结构 参考资料 Oracle10g数据类型总结 PL/SQL之基础篇 数据类型 学习总结 字符类型 char.nchar.varchar.nvarchar:有 ...
- Oracle Pl/SQL编程基础
Pl/SQL简介 提高应用程序的运行性能, 提供模块化的程序设计, 自定义标示符, 具有过程语言控制结构, 良好的兼容性, 处理运行错误. Pl/SQL语言基础 sql是关系数据库的基本操作语言. s ...
- PL/SQL编程基础(三):数据类型划分
数据类型划分 在Oracle之中所提供的数据类型,一共分为四类: 标量类型(SCALAR,或称基本数据类型) 用于保存单个值,例如:字符串.数字.日期.布尔: 标量类型只是作为单一类型的数据存在,有的 ...
- Oracle PL/SQL语句基础学习笔记(上)
PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE server和其它工具中了,近几年中很多其它的开发者和DBA開始使用PL/SQL,本文将讲述PL ...
- oracle PL/SQL编程基础知识
在oracle中使用pl/sql来扩展SQL的功能,使得SQL能够更加的灵活,功能更加强大,效率更高.pl/sql让sql也能执行判断,循环等操作.主要记录一下pl/sql的基本语法和基本条件判断语句 ...
- ORACLE PL/SQL开发--bulk collect的用法 .
刚刚在inthirties老大的博客里看到这篇文章,写的不错,正好自己最近在学习PL/SQL,转过来学习学习. ============================================ ...
- Oracle PL/SQL 编程基础 实例
create table mytest(name varchar(20),password varchar(30)); create or replace procedure sp_pro2 is ...
- oracle(sql)基础篇系列(四)——数字字典、索引、序列、三范式
数字字典表 --查看当前用户下面有哪些张表 select * from user_tables; select table_name from user_tables; --查看当前用户下面有 ...
随机推荐
- MATLAB图形界面设计(上)
参考https://www.cnblogs.com/BlueMountain-HaggenDazs/p/4307777.html 一.图形句柄 1.定义 MATLAB在创建每一个图形对象时,都会给该对 ...
- Day7 字符串和常用数据结构
字符串和常用数据结构 使用字符串 第二次世界大战促使了现代电子计算机的诞生,当初的想法很简单,就是用计算机来计算导弹的弹道,因此在计算机刚刚诞生的那个年代,计算机处理的信息主要是数值,而世界上的第一台 ...
- Network-Flow
//Created by pritry int graph[MAX][MAX]; //原图 int source; //起点,这里为0 int sink; //终点,这里为n-1 int e[MAX] ...
- 数据结构总结(UPDATING......)
目标: 1.栈........√ 2.队列......√ 3.堆.........× 4.并查集...× 栈: #define MAXN 65536 struct stack{ int sz[MAXN ...
- linux文件的特殊权限及隐藏权限
基础知识 相信大家应该都知道linux的文件基本权限,使用ls -l命令可以显示文件的基本权限,"-rwxrwxrwx.",第一位表示文件的属性(是文件- ,目录d等),后面每隔 ...
- 程序包管理rpm和yum
Linux程序包管理: API:Application Programming Interface源码包 POSIX:Portable OS 程序源代码 --> 预处理 --> 编译 -- ...
- daemon not running; starting now at tcp:5037 adb: CreateFileW 'nul' failed: 系统找不到指定的文件
1. INFO - roid.tools.idea.adb.AdbService - Initializing adb using: C:\Users\Administrator\AppData\Lo ...
- dubbo-源码阅读之dubboSpi实现原理
dubboSPI实现思想跟javaspi的思想差不多javaspi是ServiceLoad 而dubbo自己写的是ExtensionLoader SPI接口定义 @Documented @Retent ...
- 洛谷 P3275 BZOJ 2330 [SCOI2011]糖果
题目描述 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配 ...
- oracle 工具:tkprof
https://docs.oracle.com/cd/B10501_01/server.920/a96533/ex_plan.htm http://blog.csdn.net/dba_waterbin ...