xml – 无法使用UTL_FILE.PUT_LINE写入大尺寸数据
发布时间:2020-12-16 23:22:05 所属栏目:百科 来源:网络整理
导读:我创建了一个包含大量数据的xml.现在我试图将生成的xml写入文件. 宣言: prodFeed_file UTL_FILE.FILE_TYPE;prodFeed_file := UTL_FILE.FOPEN ('CSV_DIR','feed.xml','w',32767); 写入文件: UTL_FILE.PUT_LINE(prodFeed_file,l_xmltype.getClobVal);UTL_FIL
我创建了一个包含大量数据的xml.现在我试图将生成的xml写入文件.
宣言: prodFeed_file UTL_FILE.FILE_TYPE; prodFeed_file := UTL_FILE.FOPEN ('CSV_DIR','feed.xml','w',32767); 写入文件: UTL_FILE.PUT_LINE(prodFeed_file,l_xmltype.getClobVal); UTL_FILE.FCLOSE(prodFeed_file); 如果l_xmltype.getClobVal返回有限的记录,则它是工作文件,但如果l_xmltype.getClobVal超过大小(几乎35 KB),则会发出错误: ORA-06502:PL / SQL:数值或值错误 解决方法
UTL_FILE documentation says:
您将不得不按块编写CLOB块.像这样的东西: DECLARE v_clob CLOB; v_clob_length INTEGER; pos INTEGER := 1; buffer VARCHAR2(32767); amount BINARY_INTEGER := 32760; prodFeed_file utl_file.file_type; BEGIN prodFeed_file := UTL_FILE.FOPEN ('CSV_DIR','productFeedLargo.xml',32767); v_clob := l_xmltype.getClobVal; v_clob_length := length(v_clob); WHILE pos < v_clob_length LOOP dbms_lob.read(v_clob,amount,pos,buffer); utl_file.put(prodFeed_file,char_buffer); utl_file.fflush(prodFeed_file); pos := pos + amount; END LOOP; utl_file.fclose(prodFeed_file); END; / (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 如何在DI Frameworks中使用AOP和C#TestFramework
- Flash bulder4 控制台打印设置
- jQuery.getJSON调用ASP.NET方法
- reactjs – React-reveal仅在滚动停止时才起作用
- 基于vue的短信验证码倒计时demo
- ruby-on-rails – Rails引擎 – 导入未找到或不可
- ajax – 使用FormData进行JavaScript Blob上传
- Ajax Upload上传图片失败的解决方法:
- 是否有用于将Flash / Flex AS3 TextLayoutFormat
- Ruby:等待使用join和ThreadsWait.all_waits完成
热点阅读