1

我有一个 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 文件(我不知道这是否可能),那将会更有帮助。

谢谢!

4

1 回答 1

1

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

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

grep -v ^"ORA-" test.csv

或者您可能必须使用类似的东西,sed或者awk如果您的过滤要求更复杂。

分享和享受。

于 2012-08-10T16:06:30.780 回答