UTL_FILE.PUT写入txt时超过32k报ORA-29285: 文件写入错误
发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,将表中clob字段生成txt 文件,发现只要超过32k写入就报错。使用UTL_FILE.PUT的方式循环将buffer写入文件,但发现一旦某个字段超过32K,在刚好超过32k便报出以上ora06512
千家信息网最后更新 2024年10月21日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安全错误
数据库的锁怎样保障安全
2014年网络安全高职比赛
软件开发 监理用表
应聘网络技术岗位会问些什么
nba数据库库
网络安全人防技防措施
数据库无法删除会话
移动dns服务器地址首选哪个好
数据库中的er图用什么工
四川爱创科技软件开发
邮件服务器发送状态怎么检查
益阳市桃江县软件开发合同律师
软件开发工作的内容
四川销售软件开发中心
我的世界逆水寒服务器进不去
数据库最后一个盘用来干嘛的
网络安全风险方法
软件开发项目有验收环节吗
苏州crm售后管理软件开发
网络安全与法治理念
群晖通过代理服务器连接
查看代理服务器地址
软件开发专项包含
好用么缓存服务器
福建营销网络技术包括什么
怎样ping外网服务器
数据库检索结果来源于什么文档
戴尔服务器存储运行状况未知
酉阳天气预报软件开发
青少年网络安全观后感150
中国电信网络安全市场