在數據清洗時為了方便查看當前運行的狀態,特意在存儲過程里面添加了一些日志。通過查看日志可以方便的看到當前運行到哪里,但是這輸出的日志不能跟過程使用相當的事物(即不管清洗過程是成功還是失敗,日志必須得成功寫到數據庫里面)。Oracle的獨立事物就能幫助我們解決這個問題。
下面是方法模型:
  procedure AddError(i_runid number, --運行號碼
  i_append varchar2, --附加信息
  i_type   number default 10 --錯誤等級0-9錯誤,10-99警告
  ) is
  pragma autonomous_transaction;
  begin
  insert into dw_log_error
  (log_id, log_runid, log_type, log_append)
  values
  (seq_dw_log_errorid.nextval, i_runid, i_type, substr(i_append, 1, 2000));
  commit;
  end;
只需要在過程內容調整該過程即可!問題立馬解決!
新聞熱點
疑難解答