`
leifeng2
  • 浏览: 139569 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Oracle导出XML文件

阅读更多

1、创建目录-- Create directory

create or replace directory XML_PATH
  as 'D:\AAA';

 2、导出XML

create or replace procedure cllx_db2xml
is
   doc xmldom.DOMDocument;
   ret xmldom.DOMNode;
   rootnode xmldom.DOMNode;
   xmlfile varchar2(100) := 'XML_PATH'||'\'||'cllx.xml';
   cursor cur_cllx is select * from code where dmlb='1';

   procedure addcllx(doc xmldom.DOMDocument,parentnode xmldom.DOMNode,dmz varchar2,dmsm varchar2)
   is
      cllxelem xmldom.DOMElement;
      cllxnode xmldom.DOMNode;
      itemelem xmldom.DOMElement;
      itemnode xmldom.DOMNode;
      text xmldom.DOMText;
      begin

        cllxelem := xmldom.createElement(doc,'dmxx');
        cllxnode := xmldom.appendChild(parentnode,xmldom.makeNode(cllxelem));

        itemelem := xmldom.createElement(doc,'dmz');
        itemnode := xmldom.appendChild(cllxnode,xmldom.makeNode(itemelem));
        text := xmldom.createTextNode(doc,dmz);
        itemnode := xmldom.appendChild(itemnode,xmldom.makeNode(text));

        itemelem := xmldom.createElement(doc,'dmms');
        itemnode := xmldom.appendChild(cllxnode,xmldom.makeNode(itemelem));
        text := xmldom.createTextNode(doc,dmsm);
        itemnode := xmldom.appendChild(itemnode,xmldom.makeNode(text));
      end addcllx;

begin
      --创建一个新的文档对象
      doc := xmldom.newDOMDocument;
      --根标签
      rootnode := xmldom.makeNode(xmldom.createElement(doc,'jtfs'));
      ret := xmldom.appendChild(xmldom.makeNode(doc),rootnode);
      --遍历结果集
      for v_row in cur_cllx loop
          addcllx(doc,ret,v_row.dmz,v_row.dmsm1);
      end loop;
  
      --设置版本号
      xmldom.setVersion(doc,'1.0');
      --把数据写入文件
      xmldom.writeToFile(doc,xmlfile,'GBK');
      --释放文档对象资源
      xmldom.freeDocument(doc);

end cllx_db2xml;
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics