zoukankan      html  css  js  c++  java
  • Oracle PL/SQL开发基础(第三十三弹:EXCEPTION_INIT)

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

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

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

    PRAGMA EXCEPTION_INIT (exception_name, oracle_error_number);

    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; 
     

    最终会产生如下 输出:

    ORA-01400:无法将NULL插入("APPS"."EMP"."EMPNO")


    转载:
    https://blog.csdn.net/lianjiww/article/details/77074083
  • 相关阅读:
    UWP AppConnection.
    Qt 多线程使用moveToThread
    C#综合细说进程、应用程序域与上下文
    C++ std::function
    商品价格加价区间的实现(策略模式)
    学习web前端三个月感悟
    triangle leetcode C++
    Linux入门视频
    轻松学习Linux之进程监视与管理
    阻止缓冲区溢出攻击
  • 原文地址:https://www.cnblogs.com/sunice/p/9183057.html
Copyright © 2011-2022 走看看