0

データ フロー タスクを含む SSIS パッケージがあります。OLE DB ソースには、execute proc ステートメントがあります。以下のエラー メッセージで保存中に失敗します。

an OLEDB record is available... The metadata could not be determined because the statement 'select appname....' in procedure is not compatible with the statement 'select appid....' in procedure

このプロシージャにはいくつかの選択ステートメントがあり、渡されたパラメーターに従って適切な結果セットを返します。このエラーを回避するためのポインタはありますか?

4

2 に答える 2

0

つまり、渡されたパラメーターに応じて SP が異なるメタデータを返すと言っているのですか? SSIS はこれを好みません。実行時にメタ データを動的に更新できません。つまり、特定の列で分割またはソートするパッケージを作成し、SP を実行すると、その列が返されないか、同じ列が異なるデータ型である場合、SSIS はどうすればよいでしょうか? 自動的に解決することはできません。

結果セットが返される可能性ごとにデータ ソースを作成し、必要に応じてそれぞれを条件付きで実行することをお勧めします。

要するに、SP がオプションで異なるデータセットを返すことは、多くの場合、良い考えではありません。ETL の観点からは間違いありません。

動的に構築された出力を作成する方法を示すコードを次に示します (出力が 1 つだけでも同じ方法を使用できます) が、下流でも同じ問題に直面することになります。

http://www.codeproject.com/Articles/32151/How-to-Use-a-Multi-Result-Set-Stored-Procedure-in

于 2013-09-15T22:38:27.703 に答える