- 36
- 0
- 约3.3千字
- 约 4页
- 2017-06-10 发布于北京
- 举报
使用存储过程将数据以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
您可能关注的文档
最近下载
- 2026年春季学期幼儿园保教工作计划.docx VIP
- 2025年贵金属首饰与宝玉石检测员(中级)考试模拟试题与答案解析.docx VIP
- 2025年上海市中考历史试题卷(含答案).docx
- 2026年河北省职业院校技能大赛中职组艺术设计赛项样题第二套.docx VIP
- T_GDTEX 17-2021 纺织企业水重复利用率计算方法.docx VIP
- 纺织企业水的余热回收率和利用率计算方法.docx VIP
- SMT巡检记录表模板.xlsx VIP
- (人教2024版)数学七年级下册全册大单元教学设计(新教材).docx
- the real 10 algorithms that dominate our world真正主导世界实际算法.pdf
- GB/T 45251-2025互联网金融 个人网络消费信贷 贷后催收风控指引.pdf
原创力文档

文档评论(0)