• 締切済み
  • すぐに回答を!

BULK INSERT カンマ区切り

以下のようなカンマ区切りのCSVファイル "aaa","bbb","cccc" をMSDEにインポートしたいと考えており、バッチでosqlを利用してBULK INSERT処理をしています。 CSVファイルには以下のように「,」、「"」も入る可能性があります。(「"」の場合は「""」で入る) "aa,a","b""bb","cccc" このような場合、BULK INSERTで可能な方法はありますでしょうか。 バッチのみで実行することが条件です。 ご存知の方がいましたらご教授頂けると幸いです。

共感・応援の気持ちを伝えよう!

みんなの回答

  • 回答No.2

BULK INSERT のデミリタ設定を「","」で設定できればできるかも。 でも、できましたっけ? 環境ないのでちょっと試せないです。ごめんなさい。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

いろいろと情報提供ありがとうございます。 デリミタを「","」で指定するとデータに「aa","a」と入力された場合NGとなります。 なんでも入力可データなので苦戦している次第です。 DTSなら賢いので、BULK INSERT はあきらめてDTSで検討してみようと思います。

  • 回答No.1

・VBSなどを使ってカンマ区切りをタブ区切りに編集 ・BULK INSERTのデミリタをタブに設定して実行 という方法でお試しください。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございます。 確かにカンマをタブに置換すれば可能と思います。 しかし、面倒なのでBULK INSERTのみで解決できる方法があればと思い質問しました。

関連するQ&A

  • カンマ区切りでないテキストをcsvへ

    カンマ区切りしていないテキストファイルを一気にカンマ区切りしてcsvに変更することはできないのでしょうか?? 元のテキストファイルをワードパッドで開いてカンマ区切りし直して保存し、名前の変更でcsvに変更(拡張子が変更するとファイルが使用できなくなる可能性あり、というエラーは無視)したら読み込めるようにはなります。 しかしカンマ区切りし直すというのは面倒です。

  • カンマをデリミタとするレコードを取得したい

    お世話になっております。 現在直面している問題に助言を頂けたらと思い質問をさせて頂きました。 もし、ご存じの方がいらっしゃいましたらご回答を宜しくお願い致します。 MySQLにて テーブルA カラム1  カラム2 1 AAA,BBB,CCC       2 BBB,DDD 3 CCC,DDD,EEE,FFF のようなレコードが入っているとします。 これをカラム2のカンマをデリミタとして分割した文字列でgroup byをしたような結果が欲しいと思っております。 希望結果 文字列 出現回数 AAA   1個 BBB   2個 CCC   2個 DDD  1個 EEE  1個 カンマで分けられている文字列の数に規則性はなく、何が入っているかわからない状態、 また、何個の文字列がカンマによって分割されているかわからない状態です。 AA,BB と2つの文字列がカンマ区切りで入っていることもあれば AA,BBB,CCCC,・・・・ と1000個の文字列がカンマ区切りで入っている状態です。 私が未熟なためか私の調べた限りではこのように取得する方法が見当たりませんした。 DBの構造に関しましては既に動いているサービス内のものですので変更することはできません。 以上、お手隙の際にご回答を宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • BULK INSERTのエラー取得は可能なのでしょうか?

    こんばんは。 お世話になります。 SQL Server初心者です。 現在、CSVファイルに出力された他のデータベース(Paradox)のデータをSQL Server2005に移行するためのツールを作成しています。 Paradoxでは、以下のように、(1)と(2)のレコードが存在した場合、重複エラーとならなかったのですが、SQL Serverでは、当然ながら、重複エラーとなってしまいます。  (1)aaaaa, 1, あいうえお  (2)AAAAA, 1, かきくけこ  ※aaaaaとAAAAAが主キーの場合 CSVファイルのレコードは、多いもので700万件も含まれ、これを1行読み込み、既存データか否かをチェックし、既存の場合はINSERTしないという処理を700万回繰り返すと、相当な時間がかかり、性能向上を求められています。 そのため、BULK INSERTを使用する方向で検討してみました。 しかし、CSVファイルに主キー重複したレコードが存在すると、エラーが返されますが、BULK INSERTでは、どのレコードでエラーになったかまでは取得することができません。 ずいぶん、調べてみたのですが、無理のようでした。 BULK INSERTでエラーとなる箇所を特定する方法は本当にないでしょうか? もし、無理ならば、何か他にエラー箇所を特定して速くINSERTするコマンド、方法はないでしょうか? お知恵をお借りしたく、よろしくお願いいたします。

  • カンマ区切りCSVファイルをVBAで読み込みたい

    こんにちは。EXCELのVBAに詳しい方、どうか教えてください! カンマ区切りCSVファイルをEXCELに読み込みたいのですが、 CSVファイルのデータが金額のため、データ自体にもカンマが含まれていて、 金額のカンマでも分割されてEXCELのセルに収まってしまいます。 データの区切りのカンマと、金額のカンマを区別して読み込む良い方法はないでしょうか。 とても困っているので、お解りになる方どうかご回答をお願いいたします。 ・CSVファイルのデータ   1,000 , 2,000 , 1,500 , 3,000 , 1,000 , 2,500 , 2,000  ↑金額のカンマでデータが分割されないように読み込みたいのですが・・・

  • エクセルのカンマ区切りのCSV出力

    エクセルのカンマ区切りのCSV出力について質問します。 CSVファイルとしてカンマ区切りで出力したいのですが、さらに各項目にダブルコーテーション(")をつけて出力したいのです。 例) 通常のCSV 01,02,03 やりたいCSV出力 "01","02","03" ご存知の方がいらっしゃいましたら回答お願いします。

  • カンマ区切り形式ではなく、セミコロン区切り形式のCSVファイルを作りた

    カンマ区切り形式ではなく、セミコロン区切り形式のCSVファイルを作りたいのですが、どのようにしたらよいのでしょう。困っています。

  • SQL Server 2000 - bulk insert

    SQL Server 2000でのbulk insert とはどういうものなのでしょうか? csvなどをテーブルに一括で更新できてしまうものでイメージはよいのでしょうか?csvにヘッダーがある場合除くなどもできたりするのでしょうか? できれば、具体的なコマンドの書き方もご教示ください。 よろしくお願いします。

  • バッチファイルの作り方(CSV→タブ区切り)

    CSVファイルをタブ区切りにする手順は ツールーバーの 【データ】→【区切り位置】→カンマ、タブ などの設定で出来ると思います。 その手順を何度も繰り返すのが面倒なため、 バッチファイルを作成しようと考えています。 やりたい事としまして、 (1) .csvファイルをコマンドプロンプトに入れる(ドラックドロップ) (2) カンマ区切り→タブ区切りに変換し、上書き保存 ということをコマンドプロンプト(バッチファイル)で行いたいです。 関数としては for /f を使うのだと思うのですが、 よく分からないため教えていただきたいです。 宜しくお願いいたします。

  • エクセルのCSV(カンマ区切り)保存について教えてください

    次のようなEXCELデータをCSV(カンマ区切り)で保存した際に項目(カンマ)を2つ追加できるでしょうか? EXCEL  セルA1:AAA  セルB1:BBB  セルC1:  セルD1:CCC  セルE1:  セルF1: このデータをCSV保存してTEXTで確認すると、  AAA,BBB,,CCC となりますが、これを  AAA,BBB,,CCC,, としたいのですが、セルE1とセルF1がNULLのためカンマ区切りができません。半角スペースなどをいれるしかないのでしょうか? できればセルE1とセルF1には何も入力したくないのですが。良い方法がありましたら教えてください。

  • カンマ区切りのcsvファイルを…

    カンマ区切りのcsvファイルをExcelで別々のセルに読み込むVBAのプログラムを作りたいんですが、なかなか調べても見つかりません。 プログラムもしくは参考になるサイト等あればお願いします。