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"
有人知道什么原因吗,谢谢大家了.
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"
有人知道什么原因吗,谢谢大家了.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货