在數據清洗時為了方便查看當前運行的狀態(tài),特意在存儲過程里面添加了一些日志。通過查看日志可以方便的看到當前運行到哪里,但是這輸出的日志不能跟過程使用相當的事物(即不管清洗過程是成功還是失敗,日志必須得成功寫到數據庫里面)。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;
只需要在過程內容調整該過程即可!問題立馬解決!
更多信息請查看IT技術專欄