mjs*_*jsr 3 oracle plsql exception
如何获取PLSQL中发生异常的过程/函数名称?我需要这个来创建一个包中有问题的过程的日志.
遗憾的是,在运行时无法获取包装在包中的存储过程名称.任何方法,无论是$$PLSQL_UNIT查询指令或FORMAT_ERROR_BACKTRACE的功能DBMS_UTILITY包,允许你做,在一个单独的存储过程的情况下,将永远给你的anonymous block,而不是被裹在一个存储过程的情况下,一个名字包裹.因此,您唯一的选择是通过使用dbms_utility.format_error_backtrace例如捕获包名称和发生错误的行号.
SQL> create or replace package some_pkg
2 as
3 procedure some_proc;
4 end;
5 /
Package created
SQL>
SQL> create or replace package body some_pkg
2 as
3 procedure Some_Proc
4 is
5 l_var number;
6 begin
7 l_var := 1/0;
8 exception
9 when others
10 then dbms_output.put_line(dbms_utility.format_error_backtrace);
11 end;
12 end;
13 /
Package body created
SQL> exec some_pkg.some_proc;
ORA-06512: at "HR.SOME_PKG", line 7
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |