私は SSIS を初めて使用し、パラメーターを OLE DB ソースに渡すのに問題があります。特定の日付範囲のデータをクエリしたい。
データ型 Date Time の variable1 という 2 つの変数があり、変数の値は expression によって設定されますDATEADD("day", -1, GETDATE())
。データ型 Date Time の variable2 であり、変数の値は式によって設定されますDATEADD("day", 0, GETDATE())
OLE DB SOURCE 内では、データ アクセス モードが SQL コマンドに設定されています。以下は SQL コードです。
Select Col1, col2, col3, col4, coldate where Col1 = 'abc' and coldate between convert(varchar(10), ?, 101) and convert(varchar(10), ?, 101)
パラメータを次のようにマッピングしました
パラメータ0、ユーザー::変数1、入力
パラメータ1、ユーザー::変数2、入力
プレビューを押すと、エラーが発生します
「プレビューの表示中にエラーが発生しました
追加情報: 1 つ以上の必須パラメーターに値が指定されていません。(Microsoft SQL Server ネイティブ クライアント 11.0)」
タスクをデバッグすると、エラーが発生します
[OLE DB ソース [38]] エラー: SSIS エラー コード DTS_E_OLEDBERROR。OLE DB エラーが発生しました。エラー コード: 0x80040E21。OLE DB レコードが利用可能です。ソース: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E21 説明: "キャスト仕様の無効な文字値".
注: coldate 列のデータ型は datetime です。
この問題の解決を手伝ってください。OLE DB ソース内の変数からデータ アクセス モードの SQL コマンドを使用して正常にクエリを実行できましたが、データ アクセス モードを SQL コマンドとして使用しないように求められました。ありがとうございました。