1

2 つのレコードを返し、一時テーブルからの選択ステートメントを含むストアド プロシージャを使用しています。したがって、SSIS の OLEDB ソース内でこのストアド プロシージャを使用し、OLEDB を使用して宛先 SQL テーブルにレコードのセットを挿入しようとすると、行き先。

ソース側で次のようにエラーをスローします:

[OLE DB ソース [1661]] エラー: SQL コマンドに基づく行セットが OLE DB プロバイダーから返されませんでした。

さらに、set nocount をオンにして、SET FMTONLY OFF で試してみました

でも駄目…………

これで助けが必要です......

4

2 に答える 2

2

以前にも同様の問題がありましたが、これは SSIS が動的 SQL の出力を決定できなかったことが原因でした。予想される出力と一致するクエリの先頭に「偽の」Selectステートメントを含めることで解決しました。すなわち


CREATE PROCEDURE MyStoredProc
AS

    SELECT 1 As Field1, 2 As Field2, 3 As Field3 -- list of fields of appropriate type
    WHERE 1 = 0 -- so nothing is actually returned

    -- Real SQL goes here.

GO

于 2009-09-05T22:06:40.550 に答える
0

同じ接続を使用して、遅延検証をtrueにしてください

于 2009-10-05T13:46:12.873 に答える