加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle PL/SQL:如何获取堆栈跟踪,包名和过程名称

发布时间:2020-12-12 13:55:06 所属栏目:百科 来源:网络整理
导读:有时异常返回如下:“ORA-06502:PL / SQL:numeric或value error: 字符串缓冲太
有时异常返回如下:“ORA-06502:PL / SQL:numeric或value error:
字符串缓冲太小“。

它不是可读的,因为它不会报告表,列和它尝试写入的值。

在发生或捕获异常的时刻获取当前的过程名称将是有用的。

我该如何获得?

你可能想要 DBMS_UTILITY.FORMAT_ERROR_BACKTRACE功能
SQL> ed
Wrote file afiedt.buf

  1  create or replace procedure p1
  2  is
  3  begin
  4    raise_application_error( -20001,'Error 1',true );
  5* end;
SQL> /

Procedure created.

SQL> create or replace procedure p2
  2  as
  3  begin
  4    null;
  5    p1;
  6  end;
  7  /

Procedure created.

SQL> begin
  2    p2;
  3  exception
  4    when others then
  5      dbms_output.put_line( dbms_utility.format_error_backtrace );
  6  end;
  7  /
ORA-06512: at "SCOTT.P1",line 4
ORA-06512: at "SCOTT.P2",line 5
ORA-06512: at
line 2


PL/SQL procedure successfully completed.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读