UTL_FILE.PUT写入txt时超过32k报ORA-29285: 文件写入错误
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,将表中clob字段生成txt 文件,发现只要超过32k写入就报错。使用UTL_FILE.PUT的方式循环将buffer写入文件,但发现一旦某个字段超过32K,在刚好超过32k便报出以上ora06512
千家信息网最后更新 2025年01月23日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安全错误
数据库的锁怎样保障安全
数据库标准模定义
宁河软件开发哪家有名
看日志如何连公司服务器
安卓版数据库查看
保险软件开发外包
数据库数据依赖包含
直播视频软件开发
如何清除数据库的异常
工商银行软件开发地址
软件开发测试肤色暗沉
数据库的角色管理工具
数据库客户订购登记
大型电脑软件开发
便宜空间大的服务器
即时通讯软件开发的服务哪家好
大陆代理服务器
电子支付网络安全技术系列
网络安全与信息化部门怎么样
区块链保障网络安全宣传周
软件开发培训地址
程序与数据库密码连接
刑警大队网络技术工资
服务器过滤和上游过滤
学软件开发多大岁数可以学
武汉网络技术培训学校
能源行业信息化及网络安全
五年级网络安全知识演讲比赛
数据库 访问模式
儿童网络安全动漫故事
软件开发相关证书考试