web-dev-qa-db-ja.com

SQLにデータをインポートするときのエラーメッセージ(データのインポートとエクスポートウィザード)

データのインポートとエクスポートWizardを使用して、CSVファイルの内容をMSSQLのテーブルにインポートしようとしています。

すべての列を文字列としてインポートしても問題はありませんが、1つの列を浮動小数点数にする必要があります。 (CSVでは、列4は小数点以下2桁の通貨金額です(例:$ 200.30))。

列4の値を浮動小数点数に設定すると、インポート中に次のエラーが表示されます。

エラー0xc02020a1:データフロータスク1:データ変換に失敗しました。列「列4」のデータ変換は、ステータス値2およびステータステキスト「データが失われる可能性があるため、値を変換できませんでした。」を返しました。 (SQL Serverインポートおよびエクスポートウィザード)

以下は、インポートするデータの例です。

+----+------+----------+-----------+--------+
|  1 | 2014 | December | 400089323 | 8.03   |
|  2 | 2014 | December | 400319749 | 45.65  |
|  3 | 2014 | December | 400377067 | 38     |
|  4 | 2014 | December | 400524693 | 0      |
|  5 | 2014 | December | 400536070 | 125.31 |
|  6 | 2014 | December | 400663546 | 266.95 |
|  7 | 2014 | December | 400705907 | 218    |
|  8 | 2014 | December | 400763025 | 244.39 |
|  9 | 2014 | December | 400782510 | 12.89  |
| 10 | 2014 | December | 400794040 | 61.04  |
+----+------+----------+-----------+--------+

これは、列4のデータ型です。

enter image description here

列2が「文字列[DT_STR]」である場合を除いて、残りの列は「数値[DT_NUMERIC]」です。

数値や通貨など、列4のさまざまなデータ型を試しました。これは機能しませんでした。

参考:SQL Server 2012を使用しています。

2
pgunston

それを文字列としてインポートし、派生列を実行してそれを浮動小数点数に変換します。行が変換に失敗すると、エラー出力にリダイレクトされ、少なくとも問題が何であるかを確認できます。

フラットファイル接続は、問題が発生すると完全に失敗します。一般に、それらをできる限り緩くしてSSIS内に構造を追加する方が生産的です。

とにかくフロートを使いたくないでしょう。パッケージに入ったら、「numeric」を使用します。

2
Jeff Sacksteder