2011-08-11 87 views
0

我有以下錯誤消息。pl sql例外消息

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 

你能告訴我爲什麼有很多行嗎?它是堆棧放開還是信息被人爲地放在一起?

回答

2

它確實是堆棧放卷。

您可能已經從數據庫IDE(如Toad)調用了存儲過程(第1行)。該過程在第921行調用了一個過程,這反過來......錯誤最終發生在1671行的過程或函數中。

如果我沒有弄錯,異常處理程序也可以爲多行處理程序貢獻行,在線錯誤消息。

+0

是否有可能像在c#中通過反射一樣獲取過程和包名稱? – Revious

+0

你是什麼意思,從堆棧跟蹤獲取過程名稱或獲取當前過程名稱?我有點困惑,因爲術語「通過反思」不會被用於任何一個。無論如何,藉助DBMS_UTILITY包,您可以將當前堆棧跟蹤或異常回溯視爲_string_。所以你必須解析這個字符串。這是可行的。我見過軟件成功地做到了。 – Codo

+0

是的,我想要那樣的東西。我已經發布了這個問題:http://stackoverflow.com/questions/7032373/oracle-pl-sql-how-to-get-the-stack-trace-package-name-and-procedure-name – Revious