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

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

A 回答 (3件)

INSERT文で取り込めるテキストは、CSV形式です。



拡張子がCSVであればCSVファイルというわけではありません。
ファイルの形式が「何々区切り」というのが定義です。
区切りのパターンが多数あるのであれば、それはCSVファイルとは呼べません。

テキストファイルを作りなおすことをお薦めします。


1.ファイルを読む
2.Replace関数でシングルコーテをダブルコーテに変換する
3.ファイルを書き出す
4.テキストをインポートする(INSERT文の実行)
    • good
    • 0
この回答へのお礼

ちょっと質問の仕方が悪かったですね。
区切りのパターンが複数あるのではなく、テキストに何が入ってきても良いと言ういみです。すいません

やはりテキストの作り直しですかね?

Replace関数ですか?試してみます。

御回答ありがとうございました。

お礼日時:2002/02/25 00:06

実はわたしもこれで苦労しました。


商品マスタを読み込む時に例えば商品名が「3.5"FDD」という商品が存在します。
これをやられたら、OUTです。
対策方法は、CSVに落とす側で、区切り方法を固定長や、タブ区切りを使うなど工夫ができるといいのですが...

だめなら、エディタで直すか、マスタを書き換える方法しか思いつきません。
    • good
    • 0
この回答へのお礼

やはり苦労しましたか、会社の人にもいろいろきいたのですが、解決できなかったので質問いたしました。

やはりデータを直すしかないですかね...

御回答ありがとうございました。

お礼日時:2002/02/25 00:02

だいぶ遅いので解決、対応済みかもしれませんが


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

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

お礼日時:2002/03/01 23:36

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