【发布时间】:2025-12-28 07:00:12
【问题描述】:
我在一个表中有一个XML 列,其结构如下
<md xmlns="http://www.intellipayment.com" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<dist>
<ml>
<S>368.72</S>
<src>26249201</src>
<t>26249202</t>
</ml>
<ml>
....
</ml>
</dist>
</md>
我想把所有的src全选出来,一一操作。
所以我的SQL语句是:
while @i <= @xmlCount
begin
select
@CurrentSrc = AssignmentDistribution.value('(/*:md/*:dist/*:ml/*:src/text())[sql:variable("@i")]', 'varchar(50)')
from
table
where
id = 1234
set @i = @i + 1
end
我收到此错误:
XQuery [autodeals.AssignmentDistribution.value()]: 'value()' 需要一个单例(或空序列),找到类型为 'xdt:untypedAtomic *' 的操作数
但是,如果我将 SQL 变量替换为静态数字 1、2、3、4 ..... 它会正确显示结果。
谁能告诉我我做错了什么?
谢谢
【问题讨论】:
标签: xml sql-server-2008