打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Oracle PL/SQL开发基础(第三十三弹:EXCEPTION

如果有一些异常并没有异常名称,比如一些ORA-开头的异常并没有一个友好的预定义的异常定义,此时在WHEN子句中无法使用具体的异常名称,必须要使用OTHERS异常处理器进行捕捉。通过EXCEPTION_INIT编译指示,可以为这些不在预定义异常范围内的异常添加名称。

编译指示是指能在编译期而非运行时进行处理的编译指令。

编译指令EXCEPTION_INIT将告诉编译器,将异常名称和错误编号关联起来,使得在PL/SQL语句块中可以使用名称来引用所有的内部异常,为其在EXCEPTION语句块中编写特定的处理程序。
基本语法如下:

PRAGMA EXCEPTION_INIT (exception_name, oracle_error_number);
  • 1

PRAGMA是编译指令的声明,表示EXCEPTION_INIT编译指令将在编译时被处理而不是运行时,通常也称为伪指令。

看一个例子:

DECLARE    e_missingnull EXCEPTION;  -- 先声明一个异常    PRAGMA EXCEPTION_INIT (e_missingnull, -1400);  -- 将该异常与-1400进行关联BEGIN    INSERT INTO emp(empno) VALUES (NULL);  -- 向emp表中不为空的列插入NULL值    COMMIT;EXCEPTION    WHEN e_missingnull THEN        DBMS_OUTPUT.put_line(SQLERRM);        ROLLBACK;END; 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

最终会产生如下 输出:

ORA-01400:无法将NULL插入("APPS"."EMP"."EMPNO")
  • 1
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Oracle PL/SQL入门之慨述--(1)
Oracle异常处理异常处
使用 Oracle 数据库 10g PL/SQL 新特性
pl/sql中的异常处理
《Oracle9i PL_SQL从入门到精通》
ORACLE PL/SQL编程之五:
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服