我有一个XML字段,其中至少会有一个名为"ChildNode"的节点,但可能会有更多。我试图在T-SQL中创建一个循环,以获取每个ChildNode的XML作为VarChar(1000),并对其进行一些逻辑处理。当我尝试以下操作时...
...
SET @intIterator=1
SET @strValue = (SELECT XMLField.value('(/RootNode/ParentNode/ChildNode)[' + CAST(@intIterator AS VARCHAR(2)) + ']', VARCHAR(1000)) WHERE PrimaryKeyField=@intID)
WHILE LEN(@strValue) > 0
BEGIN
--LOGIC with @strValue not shown.
@intIterator = @intIterator + 1
@strValue = (SELECT XMLField.value('(/RootNode/ParentNode/ChildNode)[' + CAST(@intIterator AS VARCHAR(2)) + ']', VARCHAR(1000)) WHERE PrimaryKeyField=@intID)
END
我遇到了以下错误: xml数据类型方法"value"的参数1必须是字符串字面量。
我知道当我尝试将@intIterator用作value方法中的参数时,它会因为需要一个字符串字面量而不是一个变量而爆炸,但是如何逐个迭代T-SQL中的子节点呢?
'Varchar(50)'),
多了一个逗号。我无法编辑,因为它只是一个符号。 - new2ios