0

SSIS 2008パッケージを使用して、リモートのmySQLデータベースからMSSQLServer2008データベースにデータをコピーする必要があります。mySQLデータベースにいくつかのタイムスタンプフィールドがあり、問題が発生します。タイムスタンプフィールドを除外すると、データをうまくコピーできました。OLE DB変換先入力-入力列で、mySQLデータベースのタイムスタンプであるフィールドがデータ型DT_Bytesであると表示されています。

エラーが発生しますOLEDBレコードが利用可能です。
ソース: "Microsoft SQL Server Native Client 10.0" Hresult:0x80040E21説明:"複数ステップのOLEDB操作でエラーが発生しました。可能な場合は各OLEDBステータス値を確認してください。作業は行われませんでした。" [OLE DB変換先[784]]エラー:OLEDBアクセサーを作成できません。列のメタデータが有効であることを確認します。

mySQLソースへの私のselectステートメントには、0の日付を処理するためのselectケースがあります。SELECT case modify_date when day(modified_date)= 0 then '1990-01-01 00:00:00' else modify _date end as modify from mySQLTableName

4

1 に答える 1

1

問題は間違いなくデータ型にあります。Destination コンポーネントを編集用に開きます。マッピングタブに移動します。各列マッピングにカーソルを合わせます。最初にソース列、次に宛先です。ツールチップには、各列のデータ型が表示されます。そのうちの 1 つが一致しません。

それはあなたのタイムスタンプフィールドである可能性が最も高いですが、そうではないかもしれないので、私は推測しません.

いずれにせよ、それらを一致させるには、ソースと宛先の間にデータ変換コンポーネントを追加し、問題のあるソース列を SQL Server に挿入するデータ型に再キャストします。(再キャストでもエラーが発生する場合は、これよりもはるかに役立ちます!)

于 2013-01-24T23:06:03.467 に答える