1

Oracle 10g サーバーからデータをプルして SQL Server 2008 にプッシュする SSIS パッケージを作成しましたadmission_date

以下は、Oracleでの私のクエリです。

select pt_id,admission_date 
from stays

それは正常に動作します。

SSISパッケージを介してADO.netを介してSQL Serverのデータを取得しようとしたとき。以下のエラー メッセージが表示されます。

エラー: STAYS の 0xC02090F5、ADO NET ソース [1050]: コンポーネント "ADO NET ソース" (1050) はデータを処理できませんでした。ORA-01843: 有効な月ではありません

エラー: STAYS、SSIS.Pipeline で 0xC0047038: SSIS エラー コード DTS_E_PRIMEOUTPUTFAILED。コンポーネント "ADO NET Source" (1050) の PrimeOutput メソッドがエラー コード 0xC02090F5 を返しました。パイプライン エンジンが PrimeOutput() を呼び出したときに、コンポーネントがエラー コードを返しました。エラー コードの意味はコンポーネントによって定義されますが、エラーは致命的であり、パイプラインは実行を停止しました。これより前に、失敗に関する詳細情報を含むエラー メッセージが投稿される場合があります。

これに関する任意の入力が役立ちます。

4

2 に答える 2

3

この TO_CHAR(addmission_date,'yyyy-mm-dd HH24:MI:SS') のようなものを使用して、オラクル日付を SQL が好む形式にフォーマットします。

また、Oracle には SQL よりも有効な日付範囲がはるかに大きいため、Oracle データによっては、有効な SQL 日付として検出されない有効な Oracle 日付がある場合があることに注意してください。

SSIS を使用して Oracle から SQL Server にコピーする場合のタイムスタンプ/日時の処理を参照してください。

OracleからSQL2005へのDATETIMEフィールドはSSISでオーバーフローします

于 2012-07-20T19:32:41.140 に答える
0

問題は、Oracle テーブルがテーブルではなくビューであり、admission_date が SQL のデコード コマンドから抽出されたことです。そのまま引っ張ったところ、問題は解決しました。

于 2012-07-20T19:32:13.330 に答える