Oracle数据库提供了一种特殊的共通TYPE类型:xmlType
xmltype使用起来非常方便。
同时Oracle提供了很多操作xmltype的共通package,可以通过这些共通
package来操作xmltype。
declare
xml xmltype;
doc DBMS_XMLDOM.DOMDocument;
ndoc DBMS_XMLDOM.DOMNode;
ele DBMS_XMLDOM.DOMElement;
nodeList DBMS_XMLDOM.DOMNodeList;
node DBMS_XMLDOM.DOMNode;
subNode DBMS_XMLDOM.DOMNode;
da1 varchar2(10);
begin
xml := xmltype('<data><da1 len=''10''>aaaaaaaaaa</da1><da2>bbbbbbbbbb</da2></data>');
doc := DBMS_XMLDOM.newDomDocument(xml);
ele := DBMS_XMLDOM.getDocumentElement(doc);
nodeList := DBMS_XMLDOM.getElementsByTagName(ele,'da1');
node := DBMS_XMLDOM.ITEM(nodeList,0);
subnode := DBMS_XMLDOM.getfirstChild(node);
--DBMS_XMLDOM.writeToBuffer(subnode,da1);
da1 := DBMS_XMLDOM.getNodeValue(subnode);
DBMS_OUTPUT.PUT_LINE(da1);
DBMS_XMLDOM.setNodeValue(subnode,'cccccccccc');
--DBMS_XMLDOM.writeToBuffer(subnode,da1);
da1 := DBMS_XMLDOM.getNodeValue(subnode);
DBMS_OUTPUT.PUT_LINE(da1);
DBMS_XMLDOM.freeDocument(doc);
end;