1

Oracle データベースからデータを .csv ファイルにスプールする SQL コードがあります。

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 ファイルにリダイレクトする方法を誰かが提案してくれれば、もっと助かります (それが可能かどうかはわかりません)。

ありがとう!

4

1 に答える 1

1

出力をリダイレクトするSQL*Plusに期待するのではなく、UTL_FILEパッケージを使用して必要なファイルを作成することを検討することをお勧めします。これにはおそらくあなたの側でいくらかの書き直しが必要になるでしょうが、書かれている内容をより適切に制御できるようになります。

別のオプションは、出力ファイルをフィルタリングして. たとえば、表示したくない行がすべて「ORA-」で始まる場合、次のようなgrepコマンドを使用できる場合があります。

grep -v ^"ORA-" test.csv

または、フィルタリング要件がより複雑な場合は、sedまたはのようなものを使用する必要があるかもしれません。awk

共有してお楽しみください。

于 2012-08-10T16:06:30.780 に答える