【问题标题】:pl sql exception messagepl sql异常信息
【发布时间】:2011-08-11 17:12:57
【问题描述】:

我有以下错误信息。

2011-08-08 14:27:09 [E]: xxx - ORA-06502: PL/SQL: numeric or value error:
character string buffer too small
ORA-06512: at "xxx", line 1671
ORA-06512: at "xxx", line 2083
ORA-06512: at "xxx", line 921
ORA-06512: at line 1

你能告诉我为什么有很多行吗?是堆栈展开还是人为地将消息放在一起?

【问题讨论】:

    标签: oracle plsql ora-06512


    【解决方案1】:

    确实是堆栈展开。

    您可能已经从 Toad 等数据库 IDE(第 1 行)调用了存储过程。该过程在第 921 行有一个过程调用,这反过来......错误最终发生在第 1671 行的过程或函数中。

    如果我没记错的话,异常处理程序也可以为多行错误消息添加行。

    【讨论】:

    • 是否可以像在c#中那样通过反射获取过程和包名?
    • 什么意思,从堆栈跟踪中获取过程名称还是获取当前过程名称?我有点困惑,因为“通过反射”一词不会用于任何一个。不管怎样,在 DBMS_UTILITY 包的帮助下,您可以获得当前堆栈跟踪或异常回溯作为 string。所以你必须解析这个字符串。这是可行的。我已经看到软件成功地做到了。
    • 是的,我想要这样的东西。我已经发布了问题:stackoverflow.com/questions/7032373/…
    猜你喜欢
    • 2018-07-16
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多