UTL_FILE.PUT写入txt时超过32k报ORA-29285: 文件写入错误
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,将表中clob字段生成txt 文件,发现只要超过32k写入就报错。使用UTL_FILE.PUT的方式循环将buffer写入文件,但发现一旦某个字段超过32K,在刚好超过32k便报出以上ora06512
千家信息网最后更新 2026年11月02日UTL_FILE.PUT写入txt时超过32k报ORA-29285: 文件写入错误
将表中clob字段生成txt 文件,发现只要超过32k写入就报错。
使用UTL_FILE.PUT的方式循环将buffer写入文件,但发现一旦某个字段超过32K,在刚好超过32k便报出以上ora06512文件写入错误
v_out_filename_full := v_filedir_guid || v_out_fileext; v_file_handle := UTL_FILE.FOPEN(v_outdir, v_out_filename, 'w',32767); pos := 1; begin LOOP dbms_lob.read(v_clob_loc, amt, pos, buf); -- process contents of buf UTL_FILE.PUT(v_file_handle, buf); UTL_FILE.FFLUSH(file => v_file_handle); pos := pos + amt; END LOOP; EXCEPTION WHEN NO_DATA_FOUND then UTL_FILE.FCLOSE(v_file_handle); end;
于是尝试将写入的方式改成wb 字节模式,并用UTL_FILE.PUT_RAW的模式,就可以了:
v_out_filename_full := v_filedir_guid || v_out_fileext; v_file_handle := UTL_FILE.FOPEN(v_outdir, v_out_filename, 'wb',32767); <<<<<<<<<<<< pos := 1; begin LOOP dbms_lob.read(v_clob_loc, amt, pos, buf); -- process contents of buf UTL_FILE.PUT_RAW(v_file_handle, utl_raw.cast_to_raw(buf));<<<<<<<<<<<<<<< UTL_FILE.FFLUSH(file => v_file_handle); pos := pos + amt; END LOOP; EXCEPTION WHEN NO_DATA_FOUND then UTL_FILE.FCLOSE(v_file_handle); end;
文件
字段
方式
模式
错误
字节
尝试
循环
生成
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技企业
南京欣网互联网络科技
互联网的科技
互联网电商科技
互联网金融与金融科技
互联网科技集团
善班互联网科技
一五八零互联网科技
衡水科技产业互联网平台
央行互联网金融科技公司
字节跳动和互联网科技
武汉健翔互联网络科技有限公司
中国科技创新与世界互联网大会
城市宝互联网科技有限公司
互联网科技机房
美国五大互联网科技公司市值多少
玉溪新华互联网科技怎么选
深圳互联网科技园地址
保山浩联互联网科技有限公司
颐高云石互联网科技
科技创新与互联网经济
互联网金融科技平台
亿账通互联网科技
互联网前沿科技
湖南洣水互联网科技有限公司扣款
华服互联网科技官网
互联网科技公司实习生
元气玛特互联网科技公司是外包吗
东营紫格互联网科技
互联网时代高科技布局