where句を含むoracleに対してクエリを実行しようとしています
BETWEEN date AND date2
調査の最初のラウンドでは、Oracle OLEDBプロバイダーがパラメーター化されたクエリを許可していないことが示されているため、これらは変数に設定する必要があります。そこで、3つの変数を作成しました。2は正しく入力された日付を保持し、1つは式が次で終わるクエリを保持します。
BETWEEN to_date('" + (DT_WSTR, 30)@[User::lastRun] + "','DD/MM/YYYY HH:MI:SS AM') AND to_date('" + (DT_WSTR, 30) @[User::thisRun] + "','DD/MM/YYYY HH:MI:SS AM')"
式ビルダーで「式の評価」をクリックすると、正しく評価されます。
BETWEEN to_date('1/1/1900','DD/MM/YYYY HH:MI:SS AM') AND
to_date('1/1/2010','DD/MM/YYYY HH:MI:SS AM')
そして、他のツールを使用して、これをOracleに対して正常に実行できます。
しかし、パッケージを実行しようとすると、次のようになります。
[mySource 1 ]エラー:SSISエラーコードDTS_E_OLEDBERROR。OLEDBエラーが発生しました。エラーコード:0x80040E51。OLEDBレコードが利用可能です。ソース: "OraOLEDB" Hresult:0x80040E51説明: "プロバイダーはパラメーター情報を取得できず、SetParameterInfoが呼び出されていません。"
mySourceはOLEDBソースです。AccessModeが「SQLCommandFromVariable」に設定され、SQLCommandVariableがクエリ変数に設定されています。
また、すべての出力外部列を手動で設定し、クエリで選択した値の一部を変更して、oracleDATEデータ型を破棄しようとしました。
to_char(PT.CREATED_DTTM,'DD/MM/YYYY HH:MI:SS AM')
私はまだSSISに慣れていないので、このエラーの原因を正しい場所で探しているかどうかさえわかりません。誰かがここからどこへ行くべきか考えがありますか?
要求に応じたスクリーンショット。ご覧のとおり、「変数から」クエリはプレビューモードで期待どおりに機能しますが、実行しようとするとエラーが発生します。