現在、SQL Server で Xquery を使用して XML から情報を抽出しています。
1 つの変数にいくつかのダイナミクス コンテンツを配置する必要があるため、問題が発生していますが、機能しません。
これを選択すると:
P.value('ListOrderItem[1]/OrderItem[1]/Item[sql:variable("@I")]/Seller[1]','VARCHAR(64)')
P
は私のパスであり、他のアイテムと連携しているので問題ありませんが、このアイテムでループを実行する必要があります (1 つの注文で、多くのアイテムを持つことができます...) @I
。この変数でループします。
PS: を変数の後に置くとは言わないでください。そうしないと、[1]
毎回最初の項目が選択されます。
編集:「機能しない」とは、最初のアイテムのみを送信することを意味し、「」を入力する[1]
とエラーメッセージが送信されます[sql:variable("@I")]
。これは、「値()」がシングルトン(または空のシーケンス)を必要とし、タイプ 'xdt:untypedAtomic *"
もちろん、試してみました'+@I'
が、それでもうまくいきません..
私の XML の例:
<ListOrderItem>
<OrderItem>
<Item>
...
</Item>
<Item>
...
</Item>
</OrderItem>
</ListOrderItem>
最終編集:この投稿の問題を最終的に修正しました。投稿して申し訳ありません。
SQL Serverでvalue()を使用してxml列から複数のレコードを取得する
ありがとう。