【问题标题】:XPath must be a literal?XPath 必须是文字?
【发布时间】:2011-03-13 22:13:15
【问题描述】:

我有一个带有参数的存储过程,我希望它包含一个 XPath 表达式,然后可以使用它来检索选择中的值,但是 r.value(...) 异常消息说我只能使用文字。

这是真的还是有办法解决这个问题?

create proc MySproc
    @myxml    xml,
    @xpath    nvarchar(50)
as
begin
    select r.value(@xpath, 'nvarchar(100)') as 'demofield'
    from @myxml.nodes('/*') as records(r)
end

我也试过r.value('sql:column("@xpath")', 'nvarchar(100)')之类的东西

【问题讨论】:

    标签: xml sql-server-2005 tsql xpath


    【解决方案1】:

    好的,最终我将其全部放在动态声明中。当然,这也造成了自己的麻烦......

    【讨论】:

    • 重新设计查询最终解决了问题。答案是肯定的,它必须是文字,但与我所有其他查询一样,最好的解决方案是有一个更好的设计。最终,最好对从 XML 的解析内容生成的表执行连接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    相关资源
    最近更新 更多