没有PRAGMA自治的错误处理过程

时间:2019-06-07 14:46:53

标签: oracle plsql

我的程序如下:

 procedure proc1()
    .... 
    insert into my_text (a, b, c ) values ( d, e, f );
        if (SQL%ROWCOUNT <> 1) then
            errn := -20092 ;
        else
            errn := 0 ;
        end if ;
    end if;
    err_pkg.log (errn);
    <<< NO EXCEPTION SECTION >>>
 END PROCEDURE proc1()

但是过程ERR_PKG.log的创建没有PRAGMA AUTONOMOUNS指令。

我认为上述代码存在以下问题:

  1. 将永远不会执行SQL%ROWCOUNT,因为执行将会执行    直接进入例外部分(不存在)
  2. 永远不会调用错误处理过程ERR_PKG.LOG,因为    执行将进入(不存在)“排除”部分
  3. 即使以上两个问题已解决,也不会记录错误,因为    在没有PRAGMA AUTONOMOUS的情况下创建了ERR_PKG.log过程    交易和回叫交易会导致错误    不被记录。

我在上述观察中正确吗?

0 个答案:

没有答案