避免在Oracle SQL中进行假脱机时将错误复制到CSV中

时间:2012-08-10 12:50:03

标签: sql oracle

我有一个SQL代码,可以将数据从Oracle数据库中移出到.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 个答案:

答案 0 :(得分:1)

您可能希望使用UTL_FILE包来创建所需的文件,而不是依靠SQL * Plus来重定向输出。虽然这可能需要您进行一些重写,但最终可以更好地控制正在编写的内容。

另一种选择是过滤输出文件以消除。例如,如果您不想看到的行都以“ORA-”开头,那么您可以使用类似grep命令的内容:

grep -v ^"ORA-" test.csv

如果您的过滤要求更复杂,您可能必须使用sedawk之类的内容。

分享并享受。