pl sql异常信息

Posted

技术标签:

【中文标题】pl sql异常信息【英文标题】:pl sql exception message 【发布时间】: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

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

【问题讨论】:

【参考方案1】:

确实是堆栈展开。

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

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

【讨论】:

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

以上是关于pl sql异常信息的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL 引发处理异常

PL/SQL:捕获编号异常?

PL/SQL系统定义的异常操作实例讲解

查找异常 (PL/SQL)

PL/SQL 异常不会引发

PL/SQL 用户自定义异常操作实例