まず、これが重複した質問ではなく、その問題の潜在的な重複でもないことを明確にすることから始めましょう。StackOverflowとDBA Stack Exchangeでこの問題の既存のすべてのバリアントに対するすべての答えを、運がなくても実装しようとしました。
私は過去2日間この問題に取り組んでおり(1日約7時間問題に取り組んでいます)、問題をグーグルで解決した後でも、他の誰も私の問題とまったく同じ変種を持っているようには見えません。
私は何をしようとしていますか?
SSISで、CSVファイルから読み取り、そこから行をOLE DBデータベースに挿入しようとしています。そのため、以下に示すように、私はこれまでで最も簡単なセットアップを行いました。
Flat File Source
-CSV行を読み取ります。Derived Column
-現在は何もしません(実験のためだけにあります)。Data Conversion
-現在は何もしません(実験のためだけにあります)。OLE DB Destination
-データベースに行を格納します。
実行しようとすると、OLE DB宛先で実行が停止し、次のエラーメッセージが表示されます。
入力「OLE DB宛先入力」(51)の入力列「金額」(187)でエラーが発生しました。返された列のステータスは、「データが失われた可能性があるため、値を変換できませんでした。」でした。
失敗した列(Amount
)は現在タイプDT_STR
です。それが今一番信頼しているタイプのようです。
私は何を試しましたか?
Flat File Connection
失敗している列で「推奨タイプ」関数を使用してみました。これにより、Single byte signed int
データ型が推奨されました。- で停止し、私のフラットファイルソース。
- エラーは、データ変換が失敗したことです。列「金額」のデータ変換は、ステータス値2およびステータステキスト「データが失われる可能性があるため、値を変換できませんでした。」を返しました。
- を使用し
Derived Column
て列をにキャストしようとしましたDT_I4
。- で停止し、私の派生列。
- エラーは、データ変換が失敗したことです。列「金額」のデータ変換は、ステータス値2およびステータステキスト「データが失われる可能性があるため、値を変換できませんでした。」を返しました。
- を使用し
Data Conversion
て列の値をにキャストしようとしましたDT_I4
。- 私で停止します
Data Conversion
。 - エラーは、データ変換が失敗したことです。列「金額」のデータ変換は、ステータス値2およびステータステキスト「データが失われる可能性があるため、値を変換できませんでした。」を返しました。
- 私で停止します
DT_STR
ソースと宛先の値の長さを変更してみました。- 設定に応じて、ソースまたは宛先で停止します。
- 私の代わりに使用してExcelソース・コネクターを使用して接続しようとしたとすることなく、
IMEX=1
接続文字列に追加します。運がありません。
私のプログラミング感覚は、私が台無しにされていることを教えてくれます。私は決してしているこれまで、このような単純なことのために、このような大きな問題が発生しました。
そして、なぜ私はデータの「潜在的な」損失を無視することができないのですか?控えめに言っても本当にイライラします。
私のシステム
これは、SQL Server 2008がインストールされたWindows Server 2008 R2マシンです。マシン自体は、Windows Updateによって完全に更新されます。
Amount
ですか?
Amount
列を選択します。スクリーンショットを撮って、この写真で質問を更新してください。