oracle存储过程生成xml文件
create or replace procedure table2xml is
cursor person_cur is select * from people;
person_data people%rowtype;
doc xmldom.DOMDocument;
main_node xmldom.DOMNode;
root_node xmldom.DOMNode;
item_node xmldom.DOMNode;
person_node xmldom.DOMNode;
root_elem xmldom.DOMElement;
item_elem xmldom.DOMElement;
item_text xmldom.DOMText;
begin
open person_cur;
doc := xmldom.newDOMDocument;--创建文档对象
main_node := xmldom.makeNode(doc);--读取文档节点
root_elem := xmldom.createElement(doc,'people'); --添加一个元素(节点)
root_node := xmldom.appendChild(main_node,xmldom.makeNode(root_elem));
loop
fetch person_cur into person_data;
exit when person_cur%notfound;
item_elem := xmldom.createElement(doc,'peopleNo'); --添加 peopleNo 元素
xmldom.setAttribute(item_elem,'peopleID',person_data.personid);--添加peopleNo 属性
person_node:= xmldom.appendChild(root_node,xmldom.makeNode(item_elem));--添加为文档的子节点
item_elem :=xmldom.createElement(doc,'name');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.name); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中
item_elem :=xmldom.createElement(doc,'address');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.address); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中
item_elem :=xmldom.createElement(doc,'tel');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.tel); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中
item_elem :=xmldom.createElement(doc,'fax');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.fax); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中
item_elem :=xmldom.createElement(doc,'email');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.emall); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中
end loop;
xmldom.writeToFile(doc,'e:\person.xml');
xmldom.freeDocument(doc);
close person_cur;
end;
我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html