Sql 将数据从Oracle数据库导出到CSV时出现ORA错误
我的同事在尝试将数据从Oracle数据库导出到CSV时遇到一些问题。奇怪的是,如果他将字段Sql 将数据从Oracle数据库导出到CSV时出现ORA错误,sql,oracle,export,Sql,Oracle,Export,我的同事在尝试将数据从Oracle数据库导出到CSV时遇到一些问题。奇怪的是,如果他将字段oc\u cr\u comments中的空格替换为NULL,则导出工作正常 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
oc\u cr\u comments
中的空格替换为NULL,则导出工作正常
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
在调用
utl\u file.fopen
时,指定的max\u行大小是多少?在删除空格之前,行有多长?删除空格后的线条有多长
我的猜测是,当您打开文件时,您指定的最大行大小小于删除空格之前的实际行大小。如果删除空格导致现在的行大小小于最大行大小,这将解释为什么在您进行替换后它会工作。就是这样!如果没有指定,max_linesize
则默认为1024,而实际上没有指定,其中一条记录的长度约为1400个字符。他应该为max\u linesize
选择什么值?指定一个更高的值有什么缺点吗?@mattblang-任何高达32k的值都有效。选择更大的行长度的唯一缺点是,如果某些下游系统对文件有问题,和/或使用行长度作为某种约束以确保数据有效。