• ベストアンサー

CSV形式のファイルを読み込んでテーブルに格納するには?(BULK INSERT、BCP、DTS)

VisualBasicのカテゴリでも質問したのですが、 こちらの方が回答がつく可能性が高いのではと思い、こちらにも書き込みました。 今、 "aaa","bbb","ccc"  のような形で1レコードのCSVファイルがあります。 これをSQLServer2000上のテーブルに読込みたいのですが、 10件ほどの少ないレコードなら 各フィールドごとを変数に入れて読込み、 それをループさせてINSERT INTO すればよいのですが・・・。 大量の件数の場合時間がかかりすぎてしまいます。 それで、BULK INSERT、BCP、DTS などの利用を考えているのですが、 まず、何よりこの質問です。 (1)このようなファイル形式のものを上記の方法で読込めるのか? 実現可能なのかをまずお聞きしたいです。 どなたか、成功されている方はいらっしゃいますか? (2)BCPでファイルのフォーマットを指定したファイルを用意して試みたところ、 ""で区切られているため、その部分もフィールドに取り込まれてしまい、 binaryデータが切り詰められましたとなってしまいます。 この回避方法はないでしょうか? (3)""が余計なので、これを変換して読込むことは可能ですか? DTSはVisualBasic上からコマンドとして利用したいです。 batファイルを用意してもいいです。 困っています。どなたか助けてください。

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

  • ベストアンサー
  • takekan
  • ベストアンサー率42% (6/14)
回答No.2

DTSインポートエクスポートウィザードを使用すれば、”を含むCSVファイルでもよ見込むことが出来ますよ。 [スタート]-[プログラム]-[Microsoft SQL Server]-[データのインポートとエクスポート]から呼び出すことも出来ます。 変換元(データのコピー元)にCSVファイル(データソース:Text File)を選択して、変換先に接続するSQLServerとデータベース名を指定して・・・ 順次設定していけば、設定できますよ。 #最後にちゃんと保存してくださいね。 話は変わりますが、最初の質問から派生して関連する質問をするのであれば、ちゃんと最初の質問を終了してから新規の質問を作成してください。感じ悪いです。回答している人の気持ちを考えてください。

GBSGBS
質問者

お礼

本当に申し訳ないです。 悪いと思いつつも・・・。 それでもきちんと回答してくださったtakekanさんに感謝します。 以後は気をつけ一箇所だけで質問するようにします。 すみませんでした。

その他の回答 (1)

  • baboooo
  • ベストアンサー率35% (17/48)
回答No.1

以下のようなSQL文をVBでExecuteしてできないでしょうか? ”区切り文字”をカンマ、”改行コード”を改行文字としている ファイルを指定するやり方です。 (すいません、自身はないのですが) ---------------------------------------------------- BULK INSERT tablename ←INSERTするテーブル名 FROM 'filename.CSV' ←CSVファイル名 WITH ( FIELDTERMINATOR = ',' ←区切り文字 ,ROWTERMINATOR = '\n') ←改行コード

関連するQ&A