• ベストアンサー

テキストに’の入っているデータをクエリーで処理したらエラーに..

テキストからMDBにデータを取込む際に、テキストの項目に、’(シングルフォーテーション)が入ってきて、INSERT文のクエリーで区切りが狂ってしまい、エラーが出てしまいます。 ’(シングルフォーテーション)または ”(ダブルフォーテーション)または ,(カンマ) が入ってきても対応できる良い手段(記述方法)はないでしょうか?

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

  • ベストアンサー
  • Hk2001
  • ベストアンサー率48% (24/49)
回答No.3

だいぶ遅いので解決、対応済みかもしれませんが INSERTで、なくてレコードセットをして AddNewしてあげれば取り込めると思います。 しかし、パフォーマンスの面や、 取り込んだデータを利用する場合に INSERTやUPDATE、WHERE 条件に使用できない点があります。 以上のことを考えると、’(シングルフォーテーション)または ”(ダブルフォーテーション)または ,(カンマ)などは、最初から2バイト文字で作成してあげる か、データ上では2バイト文字で扱うを原則に、データベース設計を行い、 取込の際に念のため’(シングルフォーテーション)または ”(ダブルフォーテーション)または ,(カンマ)をチェックし 2バイト文字に変換してしまうのがいいと思います。

noname#2513
質問者

お礼

なるほど、addnewですか。 やはり後でデータを使えないと言うのはちょっとつらいですね。 結局取込の前にデータベースに入らないようにチェックを追加しました。 御回答ありがとうございました。

その他の回答 (2)

  • sgh
  • ベストアンサー率61% (75/121)
回答No.2

実はわたしもこれで苦労しました。 商品マスタを読み込む時に例えば商品名が「3.5"FDD」という商品が存在します。 これをやられたら、OUTです。 対策方法は、CSVに落とす側で、区切り方法を固定長や、タブ区切りを使うなど工夫ができるといいのですが... だめなら、エディタで直すか、マスタを書き換える方法しか思いつきません。

noname#2513
質問者

お礼

やはり苦労しましたか、会社の人にもいろいろきいたのですが、解決できなかったので質問いたしました。 やはりデータを直すしかないですかね... 御回答ありがとうございました。

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

INSERT文で取り込めるテキストは、CSV形式です。 拡張子がCSVであればCSVファイルというわけではありません。 ファイルの形式が「何々区切り」というのが定義です。 区切りのパターンが多数あるのであれば、それはCSVファイルとは呼べません。 テキストファイルを作りなおすことをお薦めします。 1.ファイルを読む 2.Replace関数でシングルコーテをダブルコーテに変換する 3.ファイルを書き出す 4.テキストをインポートする(INSERT文の実行)

noname#2513
質問者

お礼

ちょっと質問の仕方が悪かったですね。 区切りのパターンが複数あるのではなく、テキストに何が入ってきても良いと言ういみです。すいません やはりテキストの作り直しですかね? Replace関数ですか?試してみます。 御回答ありがとうございました。

関連するQ&A