2012-08-10 60 views
1

我有一個SQL代碼,可以將數據從Oracle數據庫中緩存到.csv文件中。避免在Oracle SQL中假脫機時複製到CSV中的錯誤

set echo off 
set feedback off 
set linesize 1000 
set pagesize 0 
set sqlprompt '' 
set trimspool on 
set verify off 
spool test.csv 
    /*Code Part*/ 
/
spool off 

的問題是,如果在所有發生任何錯誤(例如:資源忙的問題),同時執行代碼的一部分,這些錯誤消息也越來越與後臺數據一起復制到.csv文件。有什麼辦法可以避免它?

如果有人建議我將這些錯誤消息重定向到.txt文件(我不知道它是否可行),這將會更有幫助。

謝謝!

回答

1

您可能想要使用UTL_FILE包來創建所需的文件,而不是依靠SQL * Plus重定向您的輸出。雖然這可能需要您的部分重寫,但最終您可以更好地控制正在寫入的內容。

另一種選擇是過濾輸出文件以消除。例如,如果該行不希望看到全部以「ORA-」你也許可以使用類似的grep命令:

grep -v ^"ORA-" test.csv 

或者,可以使用類似sedawk如果你的過濾要求更復雜。

分享和享受。