如何使用变量从SQL SERVER中的XML列提取值

我想使用XML值函数从XML提取值。在这种情况下,值的路径存储在变量中。检查以下脚本

DeclARE @keyPathNg NVARCHAR(max)
DeclARE @xml_col XML
SET @keyPathNg = '/note/to/text()'
SET @xml_col = '<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Dont forghttps://stackoverflow.com/questions/10408445/the-argument-1-of-the-xml-data-type-method-value-must-be-a-string-literalet me this weekend!</body></note>'
select @xml_col.value('(sql:variable("@keyPathNg"))[1]','nvarchar(max)')   ;

给出输出:

/note/to/text()

但是,输出应为Tove

当使用硬编码路径而不是使用以下查询的变量时,我能够成功提取值。

select @xml_col.value('(/note/to/text())[1]','varchar(max)')

如前所述,在我的情况下,路径存储在变量中,请提出建议。

我已经在堆栈溢出The argument 1 of the XML data type method "value" must be a string literal上阅读了此答案,但是经检查,我没有将变量的值作为输出,也许我错过了一些东西。

zhzhhzhhh 回答:如何使用变量从SQL SERVER中的XML列提取值

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3138548.html

大家都在问