我總結了幾個,但是都有缺點:
1 dbms_output.put_line
缺點是如果不set serveroutput on 日志就無法顯示
2 寫日志表
缺點是,存儲過程異常,日志就會丟失。 並且寫表數據庫消耗大 (當然,這是個小問題)
3 自治事務寫日志表
缺點是,數據庫消耗大(因為每寫一條日志都是一個事務)
4 調用utl_file寫日志
缺點是,只能在數據庫服務器使用,並且需要創建directory的權限。這個不是開發、維護人員輕易能獲得的
create procedure pro_a_testlogrollback as v_val number; begin insert into a_testdata values(3); v_val := 1/0; exception when others then rollback; insert into a_testlog values(sysdate,'異常操作已經回滾'); commit; end;
