dポイントプレゼントキャンペーン実施中!

update DATABASE set Data1 = "ABCDEFG" where ID = 1
上のようなSQL文のデータABCDEFGの部分が、たとえば I'm a boy. とか、 You are "crazy"! のような引用符を含んだデータになると、引用符以下はデータとして認識されなくなってしまいます。
このような問題はどうやって回避すればいいのでしょうか?

A 回答 (3件)

制御文字、特殊文字は2つ重ねることで通常の文字列とおなじ解釈になります。


I''m a boy.

You are ""crazy""!

printf("D:\\Hello\\World!\n"); // ← ちょっと違うかも・・・?(^^;

この回答への補足

早速の回答ありがとうございます。
説明不足がありました。実は。WEB上でフォームからデータを取り込むことを考えています。ですので、フォームから取り込んだ文字列に引用符が含まれていた場合のことをお聞きしようと思ったのですが...いずれにしても取り込んだ後で変換するなどの方法が必要のようですね。

補足日時:2003/02/20 09:20
    • good
    • 0

お使いのDBMSがなんなのかわからないので、曖昧ですが。



引用符を引用符として解釈させる方法が、あるはずです。
つまりI'mをI''mにすると正しく認識されるなど。

で、あとは前処理を行ってから、登録すれば良いのです。

書いてるあいだに#1の方とかぶってしまいました^^
    • good
    • 0
この回答へのお礼

回答ありがとうございました。「前処理」という言葉でひらめきました。

お礼日時:2003/02/20 09:34

16進数に変換する事によって回避出来ます。


ちなみに「'」シングルコーティションなら
CHR(39)で表せます。
それらを活用すればうまくいくのではないでしょうか??

(例)
select CHR(39)|| 'TEST' || CHR(39) from dual;

CHR(39
------
'TEST'


16進数の取得方法は
下記の方法で可能です。
(例) &の16進数は?

select rawtohex('&') from dual;

RA
--
26
    • good
    • 0
この回答へのお礼

回答ありがとうございました。やはり文字列データそのものを変換をしなければならないようですね。

お礼日時:2003/02/20 09:27

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