2016-10-04 4 views
0

以下のエラーが表示される場合は、誰でも解決してください。XMLデータを解析する際のOracleエラー:LPX-00663

the ORA-31011: the XML parsing failed The  the ORA-19202: the Error Occurred in the XML processing support  The LPX-00663:. VM String-Stack overflow

私はXmlXslVMCreateでVM STRINGSTACK(のサイズのベッドを増やしとしてソリューションを見ることができました)いくつかのウェブサイトでが、それを行う方法に与えられた段差なし。

+0

あなたは何をしようとしていますか? 'v_xml:= v_xml.transform(v_xsl)' –

+0

以下のステートメントは、エラーをスローします:SELECT Xmltransform(l_xml_xmltype、l_xslt).getclobval()INTO l_xml_clob FROM dual; – roshanK

+0

コードを表示する(質問を編集してフォーマットする、コメントにすべてを入れないでください)、このエラーが発生したときに使用している変数のサンプル値を含める必要があります。 –

答えて

0

Oracleマニュアルから。

PL/SQL package DBMS_XSLPROCESSOR provides a convenient and efficient way of applying a single style sheet to multiple documents. The performance of this package is better than that of method transform(), because the style sheet is parsed only once.

私は同じ問題を抱えていました。回避策がありました。このようなもの。

DECLARE 
    v_out_clob  CLOB; 
    v_in_xml  XMLTYPE; 
    v_in_xsl  XMLTYPE; 
    ctx_xslproc  dbms_xslprocessor.processor; 
    v_in_xsl_dd  dbms_xmldom.DOMDocument; 
    v_in_xml_dd  dbms_xmldom.DOMDocument; 
    v_styleshet  dbms_xslprocessor.stylesheet; 
BEGIN 

    v_in_xml := new xmltype('<?xml version="1.0" encoding="ISO-8859-1"?><document></document>'); 
    v_in_xsl := new xmltype('<?xml version="1.0" encoding="ISO-8859-1"?> 
            <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
            <xsl:output method="html" /> 
            <xsl:template match="/"> 
             <html> 
             <head> 
              <script type="text/javascript" src="jquery-1.11.1.min.js"></script> 
             </head> 
             <body> 
              <br /> 
             </body> 
             </html> 
            </xsl:template> 
            </xsl:stylesheet>'); 
    ctx_xslproc := dbms_xslprocessor.newProcessor; 
    v_in_xsl_dd := dbms_xmldom.newDOMDocument(v_in_xsl); 
    v_in_xml_dd := dbms_xmldom.newDOMDocument(v_in_xml); 
    v_styleshet := dbms_xslprocessor.newStyleSheet(v_in_xsl_dd, NULL); 
    dbms_lob.createtemporary(v_out_clob,FALSE); 
    dbms_xslprocessor.processXSL(ctx_xslproc,v_styleshet,v_in_xml_dd,v_out_clob); 
    dbms_xmldom.freeDocument(v_in_xsl_dd); 
    dbms_xmldom.freeDocument(v_in_xml_dd); 
    dbms_xslprocessor.freeProcessor(ctx_xslproc); 
    dbms_output.put_line(v_out_clob); 

END;