a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Oracle x!ml 轉(zhuǎn)換

2019-11-02 14:39:15
字體:
供稿:網(wǎng)友

   select * from pdpla_approve_proj;

  create or replace procedure proj_xml(st_id varchar2)

  is

  pro_rows pdpla_approve_proj

勵(lì)志網(wǎng)名[www.la240.com/html2017/1/19/]
%rowtype;--行游標(biāo)

  tempsql varchar2(100) :='select * from pdpla_approve_proj where st_id='''||st_id||'''';--

  type cur is ref cursor;--自定義游標(biāo)

  proj_cur cur ;--自定義游標(biāo)實(shí)例

  doc xmldom.DOMDocument := xmldom.newDOMDocument;--文檔對(duì)象

  doc_node xmldom.DOMNode := xmldom.makeNode(doc);--文檔節(jié)點(diǎn)

  root_ele xmldom.DOMElement := xmldom.createElement(doc,'root');--文檔根元素

  st_pro_ele xmldom.DOMElement;

  project_ele xmldom.DOMElement;

  st_pro_node xmldom.DOMNode;

  root_node xmldom.DOMNode;

  project_node xmldom.DOMNode;

  t_node xmldom.DOMNode;

  cnt number :=1;

  buf varchar2(1000);

  begin

  dbms_output.put_line('tempsql'||tempsql);

  root_node := xmldom.appendChild(doc_node,xmldom.makeNode(root_ele));

  xmldom.setAttribute(root_ele,'id',st_id);

  open proj_cur for tempsql;--打開游標(biāo)

  loop

  fetch proj_cur into pro_rows;

  exit when proj_cur%notfound;

  project_ele := xmldom.createElement(doc,'project');

  project_node := xmldom.appendChild(root_node,xmldom.makeNode(project_ele));

  st_pro_ele := xmldom.createElement(doc,'st_pro_id');

  st_pro_node := xmldom.appendChild(project_node,xmldom.makeNode(st_pro_ele));

  t_node := xmldom.appendChild(st_pro_node,xmldom.makeNode(xmldom.createTextNode(doc,pro_rows.st_project_id)));

  st_pro_ele := xmldom.createElement(doc,'st_info_type');

  st_pro_node := xmldom.appendChild(project_node,xmldom.makeNode(st_pro_ele));

  t_node := xmldom.appendChild(st_pro_node,xmldom.makeNode(xmldom.createTextNode(doc,pro_rows.st_info_type)));

  cnt :=cnt+1;

  end loop;

  close proj_cur;

  xmldom.writeToBuffer(doc,buf);

  xmldom.freeDocument(doc);

  dbms_output.put_line('cnt'||cnt);

  dbms_output.put_line('doc'||buf);

  exception

  when others then

  dbms_output.put_line('sqlerrm'||sqlerrm);

  end;

  create or replace procedure p_parse (ID in varchar2) is--創(chuàng)建xml解析器實(shí)例xmlparser.ParserxmlPar xmlparser.Parser :=xmlparser.newParser;--定義DOM文檔xDoc xmldom.DOMDocument;--定義DATA子節(jié)點(diǎn)數(shù)目變量lenItme integer;--定義節(jié)點(diǎn)列表,存放DATA節(jié)點(diǎn)們itemNodes xmldom.DOMNodeList;--定義節(jié)點(diǎn)列表,存放DATA子節(jié)點(diǎn)們childNodes xmldom.DOMNodeList;--定義節(jié)點(diǎn),存放單個(gè)DATA節(jié)點(diǎn)itemNode xmldom.DOMNode;--定義屬性變量,存放節(jié)點(diǎn)屬性itemArrMap xmldom.DOMNamedNodeMap;--定義其他變量,存放子節(jié)點(diǎn)的值name varchar(100);value varchar(100);newid NUMBER(10);--定義clob變量,存放xml字符串para_namexmlStr clob;begin for cur in (select t.xml_data para_name ,t.id from xmldata t where t.id=ID ) --從xmldata表中查詢數(shù)據(jù),id不是唯一標(biāo)識(shí),一個(gè)id可查出多條數(shù)據(jù)(XML中多條數(shù)據(jù)),故用loop循環(huán) loop --獲取para_name中的xml字符串 xmlStr:=cur.para_name; xmlPar :=xmlparser.newParser; --解析xmlStr中xml字符串,并存放到xmlPar中 xmlparser.parseClob(xmlPar, xmlStr); --將xmlPar中的數(shù)據(jù)轉(zhuǎn)存到dom文檔中 xDoc:=xmlparser.getDocument(xmlPar); xmlparser.freeParser(xmlPar); --釋放解析器實(shí)例 --獲取所有DATA節(jié)點(diǎn) itemNodes:=xmldom.getElementsByTagName(xDoc,'DATA'); --獲取DATA節(jié)點(diǎn)的個(gè)數(shù) lenItme :=xmldom.getLength(itemNodes); --遍歷所有的DATA節(jié)點(diǎn) for i in 0..lenItme-1 loop begin --獲取節(jié)點(diǎn)列表中的第i個(gè)DATA節(jié)點(diǎn) itemNode:=xmldom.item(itemNodes,i); --獲取第i個(gè)DATA節(jié)點(diǎn)的所有子節(jié)點(diǎn) childNodes:=xmldom.getChildNodes(itemNode); --獲取所有子節(jié)點(diǎn)的值 newid:=xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(childNodes,0))); name:=xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(childNodes,1))); value:=xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(childNodes,2))); --將子節(jié)點(diǎn)的值newid,name,value存放到xmltest insert into xmltest values(newid,name,value); commit; end; end loop; end loop; --是否dom文檔 xmldom.freeDocument(xDoc); --異常和錯(cuò)誤處理 EXCEPTION WHEN OTHERS THEN DBMS_output.PUT_LINE(SQLERRM);end p_parse;

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 一区在线看 | 日本妇人成熟免费视频 | 日本精品在线播放 | 欧美日韩在线一区二区三区 | 日本一区二区不卡视频 | 亚洲欧美在线免费观看 | 黑人xxx视频 | 日韩视频一区二区三区 | 午夜电影网 | 99国产视频| 亚洲精品www | 无遮挡又黄又刺激的视频 | 久久亚洲精品国产一区最新章节 | 亚洲成av人片在线观看 | h视频在线免费观看 | 久久精品免费观看 | 久久久久久网站 | 青青草视频免费观看 | 日本黄a三级三级三级 | www精品美女久久久tv | 日韩高清成人 | 91精品国产777在线观看 | 成人免费xxxxxx视频 | 欧美一区二区三区在线视频 | 成人在线播放 | 高清国产一区二区三区 | 国产一级片播放 | 一区中文字幕 | 久草久 | 99视频网站 | 欧美日韩免费网站 | 中文字幕日韩在线 | 一区二区精品 | 亚洲黄色成人 | 日本aⅴ免费视频一区二区三区 | 91精品国产一区二区 | 天天插天天 | 精品亚洲视频在线观看 | 日韩在线视频网站 | 色香蕉网站| 欧美久久精品一级c片 |