質問

私は、パッケージ変数に格納プロシージャの出力パラメータをマッピングするためにSSIS 2008年にSQLタスクの実行に使用しようとしています。

パッケージ変数は、SSIS型日時と格納プロシージャパラメータは、SQL型DATETIMEである。

SQLステートメントがEXEC GetCurrentDate @CurrentDate=?、パラメータマッピング画面であり、パラメータは、方向出力とパッケージ変数にマッピングされ、データタイプDBTIMESTAMPが指定されます。

私は次のエラーを取得するパッケージを実行する場合:

  

[SQL実行タスク]エラー:実行   クエリ「EXEC GetCurrentDate   @ CURRENTDATE =? "で失敗しました   次のエラー:「のタイプ   値を変数に代入されています   「ユーザー:: 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であると仮定している理由を誰もが知っていますか?

おかげ

役に立ちましたか?

解決

Micorsoft接続バグレポートに答えを見つけます:

  これは行動を期待して、新しいSQL日時タイプ変更の結果ですと

私たちは、このケースを閉じています。あなたは私たちが値を保持するVARIANTを使用して、データの損失を防ぐための唯一の方法は、BSTRバリアントとして値を格納することで、COM相互運用機能の過程で、sqlタスクのネイティブのOLE DB接続マネージャを使用しています。あなたは、String型へのユーザー:: dateParamを変更した場合、それは動作しますか、COM相互運用機能をバイパスするために管理接続マネージャを使用するように切り替えることができます。

http://connect.microsoft.com/SQLServer/feedback /ViewFeedback.aspx?FeedbackID=307835する

他のヒント

DATEではなく、SSISのタスクでDBTIMESTAMPとしてINOUT /出力パラメータを指定してみます。

これは確かに私が働いてきたSSIS 2005のパッケージで動作します。

また、<のhref = "http://blogs.conchango.com/jamiethomson/archive/2005/03/12/SSIS_3A00_-Datetime-variables-don_2700_t-always-do-what-you見てみる価値があります-expect.aspx」のrel = 『nofollowをnoreferrer』>これをカバーし、このリンクのと同様に、SSISと日付を持つ他の問題のいくつます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top