SSIS 2008でSQL実行タスクを使用して、ストアドプロシージャの出力パラメーターをパッケージ変数にマップしようとしています。
パッケージ変数はSSISタイプのDateTimeであり、ストアード・プロシージャーのパラメーターはSQLタイプのDATETIMEです。
SQLステートメントはEXEC GetCurrentDate @CurrentDate=?
であり、パラメーターマッピング画面では、パラメーターは、出力方向とデータ型DBTIMESTAMPが指定されたパッケージ変数にマップされます。
パッケージを実行すると、次のエラーが発生します。
[SQLタスクの実行]エラー:クエリ「EXECGetCurrentDate @ CurrentDate =?」の実行が失敗し、次のエラーが発生しました:「変数「User::CurrentDate」に割り当てられている値のタイプが現在の変数タイプと異なります。変数は異なる場合があります実行中に型を変更します。Object型の変数を除いて、変数型は厳密です。考えられる失敗の理由:クエリの問題、「ResultSet」プロパティが正しく設定されていない、パラメータが正しく設定されていない、または接続が正しく確立されていない。
実行中のクエリでトレースを実行すると、タイプがdatetime2と見なされていることがわかります。
declare @p3 datetime2(7)
set @p3=NULL
exec sp_executesql N'EXEC GetCurrentDate @CurrentDate=@P1 ',N'@P1 datetime2(7) OUTPUT',@p3 output
select @p3
タイプがdatetime2であると想定している理由を誰かが知っていますか?
ありがとう