SO: XML data type method “value” must be a stringliteral を読みましたが、私の問題は少し異なります。変数に少しのxmlがあり、バラバラにしたいのですが、パスが与えられています。もともと私はこれを試しました:
declare @x xml
select @x = '....'
select @x.value('(' + @path + ')[1]', 'varchar(max)')
しかし、もちろん、それは失敗します。次に、 sql:variable を見つけて、これを試しました:
select @x.value('(sql:variable("@path"))[1]', 'varchar(max)')
しかし、それは不思議なことに @path の値を返します (なぜ?)。私はそれをいじっていますが、正しいことをさせることができません。
誰か考えますか?