EXCEPTION_INIT语句
PRAGMA EXCEPTION_INIT将异常名称与相应错误号关联,通过关联的错误号捕获异常信息,对于未命名的内部异常则可使用该方式为其添加异常名称,并为其编写一个特定的处理程序,而不是使用OTHERS处理程序。
语法格式
sql
PRAGMA EXCEPTION_INIT(name,integer);
参数说明
name
:当前PL/SQL语句、子程序或包中声明的用户自定义异常名。integer
:任何有效的虚谷数据库错误号,该错误号与函数SQLCODE返回的错误号一致。
说明:
- 错误号取值范围为[1,99999]。
PRAGMA
必须与EXCEPTION_INIT
同时出现。
示例
示例1 自定义异常名与数据库定义错误号E16005关联
sqlCREATE TABLE tb_ex(id INT PRIMARY KEY); DECLARE no_null EXCEPTION; PRAGMA EXCEPTION_INIT(no_null,16005); BEGIN INSERT INTO tb_ex VALUES(NULL); EXCEPTION WHEN no_null THEN DBMS_OUTPUT.PUT_LINE(SQLERRM); END; / -- 输出: 字段ID不能取空值
示例2 自定义错误号
sqlDECLARE ud_errc EXCEPTION; PRAGMA EXCEPTION_INIT (ud_errc,99996); BEGIN RAISE ud_errc; EXCEPTION WHEN ud_errc THEN SEND_MSG(SQLCODE); END; / -- 输出: 99996