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;
あなたは何をしようとしていますか? 'v_xml:= v_xml.transform(v_xsl)' –
以下のステートメントは、エラーをスローします:SELECT Xmltransform(l_xml_xmltype、l_xslt).getclobval()INTO l_xml_clob FROM dual; – roshanK
コードを表示する(質問を編集してフォーマットする、コメントにすべてを入れないでください)、このエラーが発生したときに使用している変数のサンプル値を含める必要があります。 –