CREATE OR REPLACE FUNCTION FUN_HT_GET_ISO_XML(IN_SQL VARCHAR2) RETURN CLOB IS
  RESULT    CLOB;
  P_XMLCLOB CLOB;
  D_XMLCLOB CLOB;
  XMLPAR    XMLPARSER.PARSER := XMLPARSER.NEWPARSER;
  ROOT_ELMT XMLDOM.DOMELEMENT;
  --//DOM文档对象
  DOC_A    XMLDOM.DOMDOCUMENT;
  DOC_B    XMLDOM.DOMDOCUMENT;
  SOURCE_ELEM   XMLDOM.DOMELEMENT;
  V_NODE_PARENT   XMLDOM.DOMNODE;
  V_IMPORTED_NODE   XMLDOM.DOMNODE;
BEGIN  /*创建临时变量*/
  DBMS_LOB.CREATETEMPORARY(D_XMLCLOB, TRUE);
  DBMS_LOB.CREATETEMPORARY(P_XMLCLOB, TRUE);  /*返回PARAM节点*/
  P_XMLCLOB := '<PARAMS><X>1</X><D>2</D></PARAMS>';
  /*ITEMLIST到CLOB变量*/
  D_XMLCLOB := '<ITEMLIST><X>1</X><D>2</D></ITEMLIST>';  --->>>>解析PARAM节点
  /*目标节点*/
  XMLPARSER.PARSECLOB(XMLPAR, P_XMLCLOB);
  DOC_A := XMLPARSER.GETDOCUMENT(XMLPAR);
  /*源节点、被导入节点*/
  XMLPARSER.PARSECLOB(XMLPAR, D_XMLCLOB);
  DOC_B := XMLPARSER.GETDOCUMENT(XMLPAR);
  SOURCE_ELEM := XMLDOM.GETDOCUMENTELEMENT(DOC_B);  /*创建节点对象*/
  
  /*合并两个XML到同一个节点*/
  V_IMPORTED_NODE  := XMLDOM.IMPORTNODE(DOC_A, XMLDOM.MAKENODE(SOURCE_ELEM), TRUE);
  ---IMPORTNODE方法用于将其它DOCUMENT中的节点导入当前的DOCUMENT
  ---第一个参数是要导入的节点,第二个参数表示是否克隆子节点,TRUE表示是
  /* XMLDOM.SET("//NODE3")).APPENDCHILD(NEWNODE); */
  
  V_NODE_PARENT := XMLDOM.MAKENODE(DOC_A);
  
  V_NODE_PARENT := XMLDOM.GETFIRSTCHILD(V_NODE_PARENT);  V_NODE_PARENT := XMLDOM.APPENDCHILD(V_NODE_PARENT,V_IMPORTED_NODE);
  /*释放解析器实例*/
  XMLPARSER.FREEPARSER(XMLPAR);  /*创建临时变量*/
  DBMS_LOB.CREATETEMPORARY(RESULT, TRUE);
  /*写给返回值*/
  XMLDOM.WRITETOCLOB(V_NODE_PARENT, RESULT);
  /*释放资源*/
  DBMS_LOB.FREETEMPORARY(P_XMLCLOB);
  /*释放资源*/
  DBMS_LOB.FREETEMPORARY(D_XMLCLOB);
  XMLDOM.FREENODE(V_NODE_PARENT);
  XMLDOM.FREENODE(V_IMPORTED_NODE);
  XMLDOM.FREEDOCUMENT(DOC_A);
  XMLDOM.FREEDOCUMENT(DOC_B);
  RETURN(RESULT);END 
 FUN_HT_GET_ISO_XML;
 这个函数测试无法从一个XML导入到另一个XML.  V_NODE_PARENT出来是:<ITEMLIST>
  <X>1</X>
  <D>2</D>
</ITEMLIST>
我想实现最终拼成:
<PARAMS><X>1</X><D>2</D>
<ITEMLIST>
  <X>1</X>
  <D>2</D>
</ITEMLIST></PARAMS>
试了很久了,都不成功呀,求助!