/*
dbms_utility.format_error_stack
這個函數和SQLERRM類似,也是返回當前錯誤代碼和消息。
主要可以返回更長的錯誤信息,不會截斷,而SQLERRM會截斷。
缺點是不能傳入參數。
dbms_utility.format_error_backtrace
這個函數是Oracle 10G纔有的,看以返回發生錯誤的行代碼。
dbms_utility.format_call_stack
這個函數返回PLSQL程序調用的堆棧。具體用法以後更新
*/
--範例:
declare
a number;
--嵌套函數
function b return varchar2 is
begin
a := 'r';
return a;
end b;
begin
dbms_output.put_line(b);
exception
when others then
dbms_output.put_line(dbms_utility.format_error_stack); --返回錯誤信息
dbms_output.put_line(dbms_utility.format_error_backtrace); --返回錯誤行數
dbms_output.put_line(dbms_utility.format_call_stack); --顯示調用堆棧
end;
--這裏特別強調dbms_utility.format_error_backtrace,它會從異常的最裏向外返回錯誤行數。
PLSQL總結——8.異常2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.