プロが教える店舗&オフィスのセキュリティ対策術

BULK INSERT というものを使って
SQLServer2000上のテーブルに読込みたいのですが可能でしょうか?

その場合どうやって記述すればよいのでしょうか?
終端文字とかいうのは何になるのでしょう?

Windows2000
RDOで接続です。

A 回答 (3件)

””で区切られたファイルのインポートですが、BULK INSERTでは、”を含んでロードしてしまいます。

ですので、BULK INSERT を使用する場合は”を削除してからロードしないと駄目です。

ところで、<www7.big.or.jp/~pinball/discus/sqls/index.html>でも質問をしているようですが、どのような環境で何がしたいのか状況がつかめません。

詳しく教えていただけませんか?

この回答への補足

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

補足日時:2002/11/18 08:59
    • good
    • 1

MSSQLServerサービスの設定はどのようになっているでしょうか?



SQLServerのインストールされているマシンで・・・
[スタート]-[プログラム]-[管理ツール]-[サービス]
を選択して、「MSSQLSERVER」のプロパティを確認してください。

で、「ローカルシステムアカウント」になっていませんか?
ローカルシステムアカウントでは、他のコンピュータ上のフォルダにアクセスできないと思いますが・・・

この回答への補足

ありがとうございます。早速調べてみたいと思います!
あとひとつ聞きたいのですが、CSVファイルが

"aaa","bbb","ccc","ddd"

のような形で1行1レコードなのですが
コンマで区切ると""もフィールドに格納されてしまいそうなのですが
この問題もBulk Insert だと解決できるということでいいですか?

補足日時:2002/11/15 09:19
    • good
    • 1

BULK INSERTはSQLの一種です。

SQLクエリアナライザか、osqlコマンドを使用してSQLServerに接続した上で、以下のコマンドを実行してください。
#一般的なCSVファイルであれば読み込めます。

BULK INSERT テーブル名
FROM 'c:\hogehoge.CSV'
WITH(
DATAFILETYPE='char',
FIELDTERMINATOR=',',
ROWTERMINATOR='\n'
)


WITH以降に記載しているそれぞれのオプションについては、ヘルプファイルを参照してください。

この回答への補足

UNC多分分かりました。\\マシン名\で指定するってことで
いいんですよね?

ということは、ファイルのパスはあっているけど
それを権限の問題で読み取れないってことなのでしょうか???

補足日時:2002/11/14 09:11
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

実行してみましたが、
'読込むファイルのフルパス'を開けなかったので、一括挿入できませんでした。オペレーティング システム エラー コード 5(アクセスが拒否されました。)。

と出ます。
読込むファイルはLANでつながったマシンにあるのですが、
ファイルを開く時に権限が必要なのでしょうか?

ヘルプを調べたところ
UNC (Universal Naming Convention) 名を指定してください。
が関係あるような気がするのですが、それが何なのかわかりません(涙)
設定方法が分かれば教えていただくと大変助かります。

お礼日時:2002/11/14 09:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す