- ベストアンサー
CSVファイルをBULK INSERTでSQLserverに読み込むことは可能?
BULK INSERT というものを使って SQLServer2000上のテーブルに読込みたいのですが可能でしょうか? その場合どうやって記述すればよいのでしょうか? 終端文字とかいうのは何になるのでしょう? Windows2000 RDOで接続です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
””で区切られたファイルのインポートですが、BULK INSERTでは、”を含んでロードしてしまいます。ですので、BULK INSERT を使用する場合は”を削除してからロードしないと駄目です。 ところで、<www7.big.or.jp/~pinball/discus/sqls/index.html>でも質問をしているようですが、どのような環境で何がしたいのか状況がつかめません。 詳しく教えていただけませんか?
その他の回答 (2)
- takekan
- ベストアンサー率42% (6/14)
MSSQLServerサービスの設定はどのようになっているでしょうか? SQLServerのインストールされているマシンで・・・ [スタート]-[プログラム]-[管理ツール]-[サービス] を選択して、「MSSQLSERVER」のプロパティを確認してください。 で、「ローカルシステムアカウント」になっていませんか? ローカルシステムアカウントでは、他のコンピュータ上のフォルダにアクセスできないと思いますが・・・
補足
ありがとうございます。早速調べてみたいと思います! あとひとつ聞きたいのですが、CSVファイルが "aaa","bbb","ccc","ddd" のような形で1行1レコードなのですが コンマで区切ると""もフィールドに格納されてしまいそうなのですが この問題もBulk Insert だと解決できるということでいいですか?
- takekan
- ベストアンサー率42% (6/14)
BULK INSERTはSQLの一種です。SQLクエリアナライザか、osqlコマンドを使用してSQLServerに接続した上で、以下のコマンドを実行してください。 #一般的なCSVファイルであれば読み込めます。 BULK INSERT テーブル名 FROM 'c:\hogehoge.CSV' WITH( DATAFILETYPE='char', FIELDTERMINATOR=',', ROWTERMINATOR='\n' ) WITH以降に記載しているそれぞれのオプションについては、ヘルプファイルを参照してください。
お礼
回答ありがとうございます。 実行してみましたが、 '読込むファイルのフルパス'を開けなかったので、一括挿入できませんでした。オペレーティング システム エラー コード 5(アクセスが拒否されました。)。 と出ます。 読込むファイルはLANでつながったマシンにあるのですが、 ファイルを開く時に権限が必要なのでしょうか? ヘルプを調べたところ UNC (Universal Naming Convention) 名を指定してください。 が関係あるような気がするのですが、それが何なのかわかりません(涙) 設定方法が分かれば教えていただくと大変助かります。
補足
UNC多分分かりました。\\マシン名\で指定するってことで いいんですよね? ということは、ファイルのパスはあっているけど それを権限の問題で読み取れないってことなのでしょうか???
補足
ご指摘があって http://oshiete1.goo.ne.jp/kotaeru.php3?q=401933 で一箇所で質問するようにしました。 参照していただくと幸いです。