CREATE OR REPLACE FUNCTION selectnode(xml in varchar2)
return varchar2
is
  v_parser   dbms_xmlparser.parser;
  v_xmldoc   dbms_xmldom.DOMDocument;
  v_node    dbms_xmlDom.DOMNode;
  v_fnode    dbms_xmlDom.DOMNode;
  v_nodeList dbms_xmlDom.DOMNodeList;
  v_nl       number;
  XMLParseError EXCEPTION;
                PRAGMA EXCEPTION_INIT(XMLParseError, -20100 );  
BEGIN
     
     v_parser := dbms_xmlparser.newParser;
   dbms_xmlparser.parseClob(v_parser,xml);
     dbms_output.put_line(xml);
     v_xmldoc := dbms_xmlparser.getDocument(v_parser);
     v_node := dbms_xmldom.makenode(v_xmldoc);
     v_fnode := dbms_xmldom.getfirstchild(v_node);     --select node
     v_nodeList:=dbms_xslprocessor.selectNodes(v_fnode, '/input/param/@name');
     v_nl := dbms_xmldom.getLength(v_nodeList);
     dbms_output.put_line('The leng of the node list:'||v_nl);
END;
输入串:--xml := '<input><param name="Category_id"><![CDATA[0]]></param><param name="Name"><![CDATA[测试分类]]></param><param name="Parent_id"><![CDATA[1]]></param><param name="Icon_id"><![CDATA[100]]></param><param name="User_id"><![CDATA[100]]></param></input>';
单步调试的时候:运行到v_nodeList:=dbms_xslprocessor.selectNodes(v_fnode, '/input/param/@name');这句时,报错.
错误信息为:
       ora-31020:不允许执行此操作,原因Invalid pl/sql DOM node hdl
       ora-06512:在"XDB.DBMS_XSLPROCESSOR",Line 613
       ora-06512:在"XDB.DBMS_XSLPROCESSOR",Line 641堆栈提示信息:" Source of PACKAGE BODY XDB.DBMS_XSLPROCESSOR is not available"
 
有人知道什么原因吗,谢谢大家了.