使用存储过程将数据以XML格式导出到XML文件.docVIP

  • 36
  • 0
  • 约3.3千字
  • 约 4页
  • 2017-06-10 发布于北京
  • 举报

使用存储过程将数据以XML格式导出到XML文件.doc

使用存储过程将数据以XML格式导出到XML文件 文章分类:数据库 最近看到有网上有很多人问怎么把数据导出到XML文件,大多的解决方法就是 dbms_xmlgen+utl_file,首先要说的是,这种方法确实不错,但是有些缺点。如果系统中需要把数据导出XML文件,通常数据量都比较大,因此,对于大数据量的导出,UTL_FILE就显得比较苍白了。而且DBMS_XMLGEN获得数据本身就是有格式的,因此UTL_FILE的INSTR 就显得有些多余了。但是,我还要把这个方法记录下来,另外,还有一个是使用DBMS_XSLPROCESSOR包的方法。 一、准备工作 ????? 准备数据: ????? CREATE TABLE xml_table(ID VARCHAR2(20), ???????????????????????????????????????????? OBJECT_VALUE VARCHAR2(200)); ??????导入数据:?????? ?????? BEGIN ???????FOR i?IN 1 .. 100000 LOOP ????????????INSERT INTO?xml_table?VALUES (i,blog.csdn.net/zhangchu_63); ?????? END LOOP; ?????? COMMIT; ?????? END; ?????? / ????? 通过上面的操作,我们已经建立了一张名叫xml_table的表,并向里面插入了100000条数据。大家知道XML文件是导出到OS的,因此,需要在ORACLE中为文件创建一个路径: ????? CREATE?OR?REPLACE DIRECTORY D_OUTPUT?AS D:\TEMP; ???? 下面是我们就要开始。 二、开始干活 ????? 1、dbms_xmlgen+utl_file方式 ?????create or replace procedure xml_output is ??????? /** ??????????本存储过程使用dbms_xmlgen+utl_file两个包来完成数据导出到XML ????????*/ ?????? xml_ctx dbms_xmlgen.ctxType; ?????? v_file utl_file.file_type; ?????? xml_txt varchar2(4000); ?????? line varchar2(500); ?????? begin ??????? xml_ctx := dbms_xmlgen.newContext(select * from xml_table order by id); ?????? dbms_xmlgen.setRowSetTag(xml_ctx,DBMS); ?????? dbms_xmlgen.setRowTag(xml_ctx,XML_TABLE); ???????xml_txt := dbms_xmlgen.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); ???????? exit when instr(line,/DBMS)0; ???????? xml_txt := substr(xml_txt,instr(xml_txt,chr(10))+1); ?????? end loop; ? ?????? dbms_xmlgen.closeContext(xml_ctx); ?????? utl_file.fclose(v_file); ??? end xml_output ; ????? 上面就是使用dbms_xmlgen+utl_file方式导出XML的,我的存储过程是没有参数的,如果大家需要可以自己加。 ?? ???? 2、dbms_xmlgen+DBMS_XSLPROCESSOR方式 ???? create or replace procedure xml_print is ??????? /** ???????? 本存储过程使用dbms_xmlgen+DBMS_XSLPROCESSOR两个包 ???????? 来完成数据导出到XML ?????? */ ?????? xml_ctx dbms_xmlgen.ctxType; ?????? xml

文档评论(0)

1亿VIP精品文档

相关文档