gpt4 book ai didi

sql-server - XML 数据类型方法 "query"的参数 1 必须是字符串文字

转载 作者:行者123 更新时间:2023-12-02 20:43:16 27 4
gpt4 key购买 nike

我在 SQL Server 中有 xml 格式的数据。现在我试图根据我的查询找出单个记录。我将我的代码放在下面,

declare @xml xml
declare @ID varchar
set @ID = '1'
set @xml = '
<row>
<Id>1</Id>
<name>OM</name>
</row>
<row>
<Id>2</Id>
<name>JAI</name>
</row>
<row>
<Id>2</Id>
<name>JAGDISH</name>
</row>
'

当我执行查询时,它会给出正确的结果(xml 节点):

Select @xml.query('/row[Id="1"]');

但是当我连接@ID进行查询时,它给了我一个错误:

Select @xml.query('/row[Id='+ @ID +']');

错误是:

The argument 1 of the XML data type method "query" must be a string literal.

最佳答案

您将需要 sql:variable()用于引用变量的 XQuery 扩展函数。此函数(引自链接)“公开一个在 XQuery 表达式内包含 SQL 关系值的变量”。

Select @xml.query('/row[Id=sql:variable("@ID")]');

关于sql-server - XML 数据类型方法 "query"的参数 1 必须是字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45408621/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com