PLSQL總結——8.異常2

/*  
  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,它會從異常的最裏向外返回錯誤行數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章