如何将XSLT / XML包含在MSSQL表中?

时间:2019-03-21 12:33:28

标签: sql xml xslt xslt-1.0 xslt-2.0

尊敬的Stackoverflow社区。

我的XSLT / XML有问题。

即使我试图在数据库表中包括我的XML文件,它也会说它不会打开我的xml文件。

我尝试通过以下方式将其包括在内:

<statement format="yyyy-MM-dd" resulttag="object" timezone="CET">
    <sql>
        INSERT INTO [DATABASENAME].[TABLENAME] ([XML], [FILENAME]) VALUES (
        '<xsl:value-of select="Request" />', <xsl:value-of select="FileName" />
        )
    </sql>
</statement> 

我在这个项目中使用了JDBC连接适配器,所以它理解了我想要的内容,但是重点是,它不想包括SQL-XML实体的XML结果...

我搜索并尝试了很多方法,但没有任何效果。

---编辑---

这是我的XSLT的第二个版本,该版本也不起作用。

<ROOT>
        <xsl:variable name="Database">
            <xsl:value-of select="DatabaseName.TableName"></xsl:value-of>
        </xsl:variable>
        <xsl:variable name="SQL_StatementI">
            <xsl:copy-of select="Request"></xsl:copy-of>
        </xsl:variable>
        <xsl:variable name="SQL_StatementII">
            <xsl:copy-of select="Request/Headers/Header/Name"></xsl:copy-of>
        </xsl:variable>

        <preparedstatement format="dd.MM.yyyy HH:mm:ss" resulttag="IndexData">
            <sql>
                insert into <xsl:value-of select="$Database"></xsl:value-of> (IndexData, FileName) values (?,?)
            </sql>
            <columns>
                  <column mode="in" name="IndexData" index="1" type="XML"></column>
                  <column mode="in" name="FileName" index="2" type="varchar"></column>
            </columns>
            <rowset>
                <row>
                    <IndexData>
                        <xsl:copy-of select="$SQL_StatementI"></xsl:copy-of>
                    </IndexData>
                    <FileName>
                        '<xsl:value-of select="$SQL_StatementII"></xsl:value-of>'
                    </FileName>
                </row>
            </rowset>
        </preparedstatement>
    </ROOT>

相同的数据库“相同的结果”,但没有数据库的结果...

以下是此版本的错误消息:

Database operation failed: Invalid node type. Cannot add node: org.dom4j.tree.DefaultText@64dbd619 [Text: " "] to this branch: org.dom4j.tree.DefaultDocument@31c6927c [Document: name null]

我知道这是Java错误,但我不知道如何修复xslt java编译器或该错误意味着什么...

P.S .:我使用XSLT“脚本”获取并读取了XML文件,该文件可以正常工作,并且输出也可以正常工作。只有JDBC连接适配器或MSSQL Server不想做我想要的事情。

0 个答案:

没有答案