All Oracle SQL functions for updating XML data are deprecated. Oracle recommends that you use XQuery Update instead. These are the deprecated XML updating functions:updateXML
insertChildXML
insertChildXMLbefore
insertChildXMLafter
insertXMLbefore
insertXMLafter
appendChildXML
deleteXML
Old way:
set serveroutput on;
DECLARE
myMainXml XMLTYPE;
mySubXml XMLTYPE;
myCombinedXml XMLTYPE;
BEGIN
SELECT XMLELEMENT ("MAIN", NULL) INTO myMainXml FROM DUAL;
SELECT XMLELEMENT ("SUBXML", 'Some value') INTO mySUBXml FROM DUAL;
SELECT APPENDCHILDXML(myMainXml, '/MAIN',mySUBXml)INTO myCombinedXml FROM DUAL;
dbms_output.put_line(myCombinedXml.getclobval ());
END;
new way:
set serveroutput on;
DECLARE
myMainXml XMLTYPE;
mySubXml XMLTYPE;
myCombinedXml XMLTYPE;
BEGIN
SELECT XMLELEMENT ("MAIN", NULL) INTO myMainXml FROM DUAL;
SELECT XMLELEMENT ("SUBXML", 'Some value') INTO mySUBXml FROM DUAL;
SELECT XMLQUERY ('copy $tmp := . modify insert node $bla as last into $tmp/MAIN return $tmp'
PASSING myMainXml, mySubXml as "bla" RETURNING CONTENT)
INTO myCombinedXml
FROM DUAL;
DBMS_OUTPUT.put_line (myCombinedXml.getclobval ());
END;
Geen opmerkingen:
Een reactie posten