1

皆さん、

1 つの「SQL 実行タスク」で 2 つの個別の XML ドキュメントを返す方法はありますか?

1) 2 つの別個の XML ドキュメントを返すストアド プロシージャを作成します。 2) 'SQL 実行タスク' を構成して、次のようにします。 - ADO.NET 接続マネージャ - ストアド プロシージャを呼び出します。 「結果セット」レバーでは、出力は 2 つの別個の文字列変数にマップされます。例: ResultName: 0 - VariableName: firstVar、ResultName: 1 - VariableName: secondVar;

結果変数が1つだけの「結果セット」がある場合、すべて正常に機能します-呼び出されたストアドプロシージャから最初のxmlを適切に返し、それを変数にマップします。2 番目の変数を追加すると、エラーが発生します。

[SQL タスクの実行] エラー: ResultSetType に対して返された結果バインディングの数が無効です: "ResultSetType_XML"。

この1つのタスクを達成することは可能ですか?前もって感謝します。

4

1 に答える 1

1

直接ではありません。MSDNに記載されているとおり:

  • XML結果セットは、クエリが結果セットを XML 形式で返すときに使用されます。たとえば、この結果セットは、FOR XML 句を含む SELECT ステートメントに使用されます。

SQL 実行タスクが完全な結果セットの結果セットを使用し、クエリが複数の行セットを返す場合、タスクは最初の行セットのみを返します。この行セットでエラーが発生した場合、タスクはエラーを報告します。他の行セットでエラーが発生した場合、タスクはそれらを報告しません。

ただし、ご指摘のとおり、2 つのクエリを実行し、結果を文字列として内部的に保存し、結果を OUTPUT パラメーターとして返すストアド プロシージャを作成することはできます。もちろん、SQL 実行タスクを 2 つ作成することもできます。

于 2013-04-02T17:22:32.733 に答える