set @xml = '
<body>
<Record>
<A>a</A>
<B>b</B>
<C>c</C>
</Record>
<Record>
<A>d</A>
<B>e</B>
<C>f</C>
</Record>
<Record>
<A>g</A>
<B>h</B>
<C>i</C>
</Record>
</body>
'
私はこの構文を使用しようとしているが、のXQueryのXPathで変数を使用する(値)
は、私は、XQueryでXPathで変数を使用したい動作しません(値)
SET @xmlQuery = '/Record[2]/A'
set @nodevalue = (@xml.value('(//*[local-name()=sql:variable("@xmlQuery")])/text())[1]', 'nvarchar(50)'))
何が間違っていますか?
...これは、標準で定義されている実際の/正当な言語ではなく、MicrosoftのXQueryの悲惨さのようなものですか? (特定のベンダーの実装に依存することを求めている場合は、適切なタグを付けてください)。 –
... XQueryの変数は '@ foo'ではなく' $ foo'のような名前を持ち、変数を定義する構文は 'set'ではなく' declare'を使い、 'nvarchar'は有効なデータではありませんそこにタイプしてください。つまり、XQueryのようには見えません。 –
実際に@xmlQueryの値はテーブルから来ます。私は動的SQLを使用して達成することができますが、私はどのようにexec sp_executesqlから来る値を割り当てるか分からないことを知っている。 http://stackoverflow.com/questions/39399317/save-result-of-exec-sp-excutequery-using-xpath – zanza67