SSISでSQL実行タスクを使用して変数を設定しようとしています。テーブルの構造は次のとおりです。
CREATE TABLE BuildControl
(Id INT NOT NULL Identity, BuildDate Date,
Country char(2), BuildStatus varchar(20),
BuildStatusDate DateTime)
SQLステートメントは
SELECT TOP 1 ? = Id, ? = BuildDate
FROM BuildControl
WHERE BuildStatus IS NULL
ORDER BY Id
? = BuildDate
を削除すると問題なく動作します。パラメータマッピングタブは次のようになります。
私が受け取っているエラーはこれです:
SSIS package "WFG Statement Build.dtsx" starting.
Error: 0xC002F210 at Get Build Data, Execute SQL Task: Executing the query "SELECT TOP 1 ? = Id, ? = BuildDate
FROM BuildContr..." failed with the following error: "Error HRESULT E_FAIL has been returned from a call to a COM component.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
Task failed: Get Build Data
Warning: 0x80019002 at WFG Statement Build: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but the number of errors raised (1) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
SSIS package "WFG Statement Build.dtsx" finished: Failure.
日付出力変数に問題があると思います。削除すると問題が発生しないためです。サーバーと使用しているSSISのバージョンはどちらもSQL Server 2008 R2です。接続マネージャーはOLE Native OLE DB\SQL Server Native Client 10.0
プロバイダーを使用したDB接続です。成功しないDateTimeを使用するようにテーブル構造を変更しようとしましたが、データ型としてDBDateおよびDBDateTimeを試しましたパラメータマッピングページでも成功しません。
私は完全に困惑しています。助けてくれてありがとう!
パラメータではなく、結果セットをマッピングしてみてください。設定は似ています。結果名は0
と1
で、selectステートメントでは? =
は不要です。
SELECT TOP 1 Id, BuildDate
FROM BuildControl
WHERE BuildStatus IS NULL
ORDER BY Id
また、結果セットがSingle row
に設定されていることを確認してください。