在进行XSLT转换时,我需要在xsl中调用Datasource。我正在使用ora-ext来实现它。但是我得到了使用ORAEXT的查询数据库函数找不到匹配的5参数函数和4参数匹配函数。
完整的堆栈跟踪:
在{... t_code','jdbc / JDBCDataSourc ...}附近的char 1处的静态错误在xsl:value-of / @中的表达式中选择第1行第1575行 XPST0017:找不到名为
的匹配的5参数函数 {http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc} lookup-table()。
对于对Java方法的调用的诊断,请使用-TJ命令行选项或设置Configuration属性FeatureKeys.TRACE_EXTERNAL_FUNCTIONS
这是我的XSLT:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:oraext="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
xmlns:sql="http://ns.saxonica.com/sql"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:java="http://saxon.sf.net/java-type"
xmlns:saxon="http://saxon.sf.net/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ora="http://schemas.oracle.com/xpath/extension"
exclude-result-prefixes="java saxon xsd xsi xsl sql"
extension-element-prefixes="saxon sql"
>
<xsl:template match="Order">
<Parameter>
<xsl:attribute name="name">ACT_CODE</xsl:attribute>
<xsl:attribute name="value">
<xsl:value-of select="oraext:lookup-table('ACT_CODE_MTDT', 'prdt_id','1159', 'act_code','jdbc/JDBCDataSource')"/>
</xsl:attribute>
</Parameter>
</xsl:template>
</xsl:stylesheet>
如果我遗失某些事情,请提出建议。如果需要除ojdbc6.jar之外的任何jar,请建议我。
此外,我无法访问this网址。 这是命名空间是否已更改,或者我的代码中缺少某些内容。
答案 0 :(得分:0)
在我看来,您运行Saxon作为您的XSLT处理器(我们可以从错误消息的形式来判断),但您正在尝试调用已被Oracle定义为其供应商扩展的扩展功能拥有自己的XSLT处理器。那不行。