欢迎来到天天文库
浏览记录
ID:35209222
大小:40.00 KB
页数:4页
时间:2019-03-21
《使用存储过程将数据以xml格式导出到xml文件》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、使用存储过程将数据以XML格式导出到XML文件文章分类:数据库最近看到有网上有很多人问怎么把数据导出到XML文件,大多的解决方法就是dbms_xmlgen+utl_file,首先要说的是,这种方法确实不错,但是有些缺点。如果系统中需要把数据导出XML文件,通常数据量都比较大,因此,对于大数据量的导出,UTL_FILE就显得比较苍白了。而且DBMS_XMLGEN获得数据本身就是有格式的,因此UTL_FILE的INSTR就显得有些多余了。但是,我还要把这个方法记录下来,另外,还有一个是使用DBMS_XSLPROCESSOR包的方法。一、准备工作 准备数据: CREATETABL
2、Exml_table(IDVARCHAR2(20), OBJECT_VALUEVARCHAR2(200)); 导入数据: BEGIN FORi IN1..100000LOOP INSERTINTO xml_table VALUES(i,'blog.csdn.net/zhangchu_63'); ENDLOOP; COMMIT; END; / 通过上面的操作,我们已经建立了一张名叫xml_tab
3、le的表,并向里面插入了100000条数据。大家知道XML文件是导出到OS的,因此,需要在ORACLE中为文件创建一个路径: CREATE OR REPLACEDIRECTORYD_OUTPUT AS'D:TEMP'; 下面是我们就要开始。二、开始干活 1、dbms_xmlgen+utl_file方式 createorreplaceprocedurexml_outputis /** 本存储过程使用dbms_xmlgen+utl_file两个包来完成数据导出到XML */ xml_ctxdbms_xmlge
4、n.ctxType; v_fileutl_file.file_type; xml_txtvarchar2(4000); linevarchar2(500); begin xml_ctx:=dbms_xmlgen.newContext('select*fromxml_tableorderbyid'); dbms_xmlgen.setRowSetTag(xml_ctx,'DBMS'); dbms_xmlgen.setRowTag(xml_ctx,'XML_TABLE'); xml_txt:=dbms_xmlge
5、n.getXML(xml_ctx); v_file:=utl_file.fopen('XML_OUTPUT','test.xml','w'); loop line:=substr(xml_txt,1,instr(xml_txt,chr(10))-1); utl_file.put_line(v_file,line); exitwheninstr(line,'')>0; xml_txt:=substr(xml_txt,instr(xml_txt,chr(10))+1); endloop;
6、 dbms_xmlgen.closeContext(xml_ctx); utl_file.fclose(v_file); endxml_output; 上面就是使用dbms_xmlgen+utl_file方式导出XML的,我的存储过程是没有参数的,如果大家需要可以自己加。 2、dbms_xmlgen+DBMS_XSLPROCESSOR方式 createorreplaceprocedurexml_printis /** 本存储过程使用dbms_xmlgen+DBMS_XSLPROCESSOR两个包 来完成数
7、据导出到XML */ xml_ctxdbms_xmlgen.ctxType; xml_txtclob; begin xml_ctx:=dbms_xmlgen.newContext('select*fromxml_table orderbyid'); dbms_xmlgen.setRowSetTag(xml_ctx,'DBM
此文档下载收益归作者所有