何らかの理由で行がXML形式のテーブルがあります。SQL ServerでOpenXMLを使用する
これらの行を解析し、XML自体から新しいテーブルを作成する必要があります。
これは、SQL ServerにはOpenXMLがあります。私はSQL Server 2016 SP1のバージョンで作業しています。
私は上記のリンクからXMLを使用する方法について説明したが、次のとおりです。
DECLARE @idoc int, @doc varchar(1000);
コマンド(複数可)正常に完了しました。
次のコマンドを実行します。このため
SET @doc ='
<ROOT>
<Customer CustomerID="VINET" ContactName="Paul Henriot">
<Order CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00">
<OrderDetail OrderID="10248" ProductID="11" Quantity="12"/>
<OrderDetail OrderID="10248" ProductID="42" Quantity="10"/>
</Order>
</Customer>
<Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">
<Order CustomerID="LILAS" EmployeeID="3" OrderDate="1996-08-16T00:00:00">
<OrderDetail OrderID="10283" ProductID="72" Quantity="3"/>
</Order>
</Customer>
</ROOT>';
私が手:
メッセージ137、レベル15、状態1、行1870
スカラー変数 "@doc" を宣言する必要があります。
私は上のコマンドで正常に宣言して以来、これは奇妙です。
そして今:
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc;
メッセージ137、レベル15、状態2、行1887
はスカラー変数 "@idoc" を宣言する必要があります。
このエラーはどのように解決できますか?
あなたが同じラインタイムコードで、行が1つの右ずつ実行されますが、 –
@sarslanのすべてを実行する必要があります...私はすべてに置くと仮定します関数やストアドプロシージャでこれを... ...私はプロシージャとしてこれをすべて入れたい場合、少し助けてもらえますか? –
@RajeshRonaldo、行は論理的な順序で実行されますが、スクリプト全体が最初に遵守される必要があります。現在のバッチの寿命を持つローカル変数を宣言しています。 – dbajtr