こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

CSVファイルのデータをDBに取り込みたい。

お世話になります。
現在、日本郵便が提供している「郵便番号データダウンロード」を利用して、全国の郵便番号をダウンロードして、SQL Serverのデータベースに新しくテーブルとして追加しようとしています。

しかし、データをインポートしようとすると必ずエラーが起こってしまい・・・同じようなエラー解決法をネットで探したのですが、現在起こっているエラーの解決法と違う?もしくは私が理解していないだけかもしれないのですが、もし解決法がお分かりになれば、噛み砕いてご教授願えればと思います。

以下環境およびエラー文章です。

開発環境:SQL Server2005
動作環境:Windows XP
「フラットファイルソース」からダウンロードしてきたCSVファイルを取り込み、先頭データ行を列名とし「SQL Native Client」のサーバに変換しようとしてエラーが出ました。

- 実行しています (エラー)
メッセージ
エラー 0xc02020a1: データ フロー タスク: データ変換に失敗しました。列 "ChoName" のデータ変換から、状態値 4 と状態を示すテキスト "テキストが切り捨てられたか、または対象になるコード ページで 1 つ以上の文字が一致しませんでした。" が返されました。
(SQL Server インポートおよびエクスポート ウィザード)

エラー 0xc020902a: データ フロー タスク: "出力列 "ChoName" (34)" が切り捨ての発生により失敗しました。"出力列 "ChoName" (34)" の切り捨て行の処理により、切り捨てによる失敗が示されます。ここに示されたコンポーネントのオブジェクトで切り捨てエラーが発生しました。
(SQL Server インポートおよびエクスポート ウィザード)

エラー 0xc0202092: データ フロー タスク: データ行 2050 で、ファイル "C:\Documents and Settings\Administrator\デスクトップ\加山\住所\ken_all\KEN_ALL.CSV" の処理中にエラーが発生しました。
(SQL Server インポートおよびエクスポート ウィザード)

エラー 0xc0047038: データ フロー タスク: コンポーネント "変換元 - KEN_ALL_CSV" (1) の PrimeOutput メソッドからエラー コード 0xC0202092 が返されました。パイプライン エンジンが PrimeOutput() を呼び出したときに、このコンポーネントからエラー コードが返されました。このエラー コードの詳細はコンポーネントで定義されていますが、これは致命的なエラーであり、パイプラインの実行は停止されました。
(SQL Server インポートおよびエクスポート ウィザード)

エラー 0xc0047021: データ フロー タスク: エラー コード 0xC0047038 により、スレッド "SourceThread0" は終了しました。
(SQL Server インポートおよびエクスポート ウィザード)

エラー 0xc0047039: データ フロー タスク: スレッド "WorkThread0" はシャットダウンの通知を受け取ったので終了処理中です。ユーザーがシャットダウンを要求したか、別のスレッド内のエラーが原因でパイプラインがシャットダウンされています。
(SQL Server インポートおよびエクスポート ウィザード)

エラー 0xc0047021: データ フロー タスク: エラー コード 0xC0047039 により、スレッド "WorkThread0" は終了しました。
(SQL Server インポートおよびエクスポート ウィザード)

よろしくお願いします。

投稿日時 - 2009-03-13 12:23:36

QNo.4792867

すぐに回答ほしいです

質問者が選んだベストアンサー

それはつまり、該当する列(日本語で町名が入っているところだと思いますが)の取込み時の長さが足りなくて、切れることにより
エラーが発生しているということです。

テーブルのサイズではなくファイルを読みだす設定の方です。
デフォルト設定は50バイトになってしまうため、変更してあげないといけません。
「フラットファイルソース」の詳細設定で個別に列の設定ができますので、該当列についてOutputColumnWidthを50→100に
変更してみてください。

投稿日時 - 2009-03-13 13:33:06

お礼

ご回答ありがとうございます!
ご回答の方法でやってみた所、まさしくそこでした!
ずっと、テーブル側ばかり見て唸っていましたが、読み出すほうだったのですね・・・読むほうはカンマ区切りの設定だったので、自然とカンマ単位で読んでもらえるものかと思っていました。勉強不足ですね・・・

おかげ様で無事データを取り込む事が出来ました。本当にありがとうございました!

投稿日時 - 2009-03-13 14:38:19

このQ&Aは役に立ちましたか?

21人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問