gpt4 book ai didi

oracle - 在PLSQL中如何获取发生异常的过程/函数名称?

转载 作者:行者123 更新时间:2023-12-04 23:53:34 25 4
gpt4 key购买 nike

如何获取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

关于oracle - 在PLSQL中如何获取发生异常的过程/函数名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12735712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com