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