Oracle存储过程异常信息的显示

异常处理的写法:

... 
EXCEPTION 
  WHEN OTHERS THEN 
    ROLLBACK; 
END ... 

但是出现异常无法获知啥异常,因此代码块增加以下语句:

EXCEPTION 
    WHEN OTHERS THEN 
      --以下表示输出buffer不受限制
      DBMS_OUTPUT.ENABLE(buffer_size => null);
      dbms_output.put_line(dbms_utility.format_error_backtrace);
      DBMS_OUTPUT.put_line('sqlcode : ' ||sqlcode); 
      DBMS_OUTPUT.put_line('sqlerrm : ' ||sqlerrm); 
      --以下截取前100个字符显示
      DBMS_OUTPUT.put_line('sqlerrm : ' ||substr(sqlerrm,1,100));    ROLLBACK; 
END ... 


begin 
 produce_name;
end;

猜你喜欢

转载自minyongcheng.iteye.com/blog/2237847