我的同事在尝试将数据从Oracle数据库导出到CSV时遇到了一些问题。奇怪的是,如果他用NULL替换字段oc_cr_comments
中的空格,那么导出就可以了。
TRIM (REPLACE(oc_cr_comments, CHR(32), NULL))
什么可能导致通过用NULL替换空格来修复导出问题?
错误输出为:
ERROR at line 1:
ORA-29285: file write error
ORA-06512: at "SYS.UTL_FILE", line 140
ORA-06512: at "SYS.UTL_FILE", line 785
ORA-06512: at "EFS.P_CRIMINAL_DISPOSITION", line 151
ORA-06512: at line 1
答案 0 :(得分:1)
在对utl_file.fopen
的调用中,指定的max_linesize
是什么?删除空格之前的行多长时间?删除空格后该行有多长时间?
我的猜测是,当您打开文件时,在删除空格之前指定的最大行大小小于实际行大小。如果删除空格会导致线条大小现在小于最大线条大小,这可以解释为什么它在您进行替换后可以正常工作。