• ベストアンサー

CSVファイルをBULK INSERTでSQLserverに読み込むことは可能?

BULK INSERT というものを使って SQLServer2000上のテーブルに読込みたいのですが可能でしょうか? その場合どうやって記述すればよいのでしょうか? 終端文字とかいうのは何になるのでしょう? Windows2000 RDOで接続です。

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

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

””で区切られたファイルのインポートですが、BULK INSERTでは、”を含んでロードしてしまいます。ですので、BULK INSERT を使用する場合は”を削除してからロードしないと駄目です。 ところで、<www7.big.or.jp/~pinball/discus/sqls/index.html>でも質問をしているようですが、どのような環境で何がしたいのか状況がつかめません。 詳しく教えていただけませんか?

GBSGBS
質問者

補足

ご指摘があって http://oshiete1.goo.ne.jp/kotaeru.php3?q=401933 で一箇所で質問するようにしました。 参照していただくと幸いです。

その他の回答 (2)

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

MSSQLServerサービスの設定はどのようになっているでしょうか? SQLServerのインストールされているマシンで・・・ [スタート]-[プログラム]-[管理ツール]-[サービス] を選択して、「MSSQLSERVER」のプロパティを確認してください。 で、「ローカルシステムアカウント」になっていませんか? ローカルシステムアカウントでは、他のコンピュータ上のフォルダにアクセスできないと思いますが・・・

GBSGBS
質問者

補足

ありがとうございます。早速調べてみたいと思います! あとひとつ聞きたいのですが、CSVファイルが "aaa","bbb","ccc","ddd" のような形で1行1レコードなのですが コンマで区切ると""もフィールドに格納されてしまいそうなのですが この問題もBulk Insert だと解決できるということでいいですか?

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

BULK INSERTはSQLの一種です。SQLクエリアナライザか、osqlコマンドを使用してSQLServerに接続した上で、以下のコマンドを実行してください。 #一般的なCSVファイルであれば読み込めます。 BULK INSERT テーブル名 FROM 'c:\hogehoge.CSV' WITH( DATAFILETYPE='char', FIELDTERMINATOR=',', ROWTERMINATOR='\n' ) WITH以降に記載しているそれぞれのオプションについては、ヘルプファイルを参照してください。

GBSGBS
質問者

お礼

回答ありがとうございます。 実行してみましたが、 '読込むファイルのフルパス'を開けなかったので、一括挿入できませんでした。オペレーティング システム エラー コード 5(アクセスが拒否されました。)。 と出ます。 読込むファイルはLANでつながったマシンにあるのですが、 ファイルを開く時に権限が必要なのでしょうか? ヘルプを調べたところ UNC (Universal Naming Convention) 名を指定してください。 が関係あるような気がするのですが、それが何なのかわかりません(涙) 設定方法が分かれば教えていただくと大変助かります。

GBSGBS
質問者

補足

UNC多分分かりました。\\マシン名\で指定するってことで いいんですよね? ということは、ファイルのパスはあっているけど それを権限の問題で読み取れないってことなのでしょうか???

関連するQ&A