ORA-29285: file write error

在使用Oracle脚本对数据数据进行格式化导出的时候出现下列报错。

1. 首先检查写文件路径是否给了权限

2. 如果一条数据的数据长度较大,需要修改缓存使得写文件操作能进行


ORA-29285: file write error

ORA-06512: at "SYS.UTL_FILE", line 140
ORA-06512: at "SYS.UTL_FILE", line 379
ORA-06512: at "SYS.UTL_FILE", line 756
ORA-06512: at "GL_BANK.UXUNDUMP_TXT", line 46

ORA-06512: at line 1



问题关键:

    l_output := utl_file.fopen( p_dir, p_filename, 'w' );

修改为:

    l_output := utl_file.fopen( p_dir, p_filename, 'w' ,32767);

fopen函数在的第四个默认参数的默认值是 1024,即每条数据长度不大于1k,如果数据长度大于1024 即会抛出以上错误。

此参数值表示所开辟的数据单元缓存大小  若没有调用utl_file.new_line( l_output ); 函数结束一条数据的读取,则所有数据的导出均使用这个缓存。


你可能感兴趣的:(ORA-29285: file write error)