我有一个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文件(我不知道是否可能),那会更有帮助。
谢谢!
答案 0 :(得分:1)
您可能希望使用UTL_FILE包来创建所需的文件,而不是依靠SQL * Plus来重定向输出。虽然这可能需要您进行一些重写,但最终可以更好地控制正在编写的内容。
另一种选择是过滤输出文件以消除。例如,如果您不想看到的行都以“ORA-”开头,那么您可以使用类似grep
命令的内容:
grep -v ^"ORA-" test.csv
如果您的过滤要求更复杂,您可能必须使用sed
或awk
之类的内容。
分享并享受。