• ベストアンサー

SQL文の中に引用符を入れたい

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

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

  • ベストアンサー
noname#4564
noname#4564
回答No.1

制御文字、特殊文字は2つ重ねることで通常の文字列とおなじ解釈になります。 I''m a boy. You are ""crazy""! printf("D:\\Hello\\World!\n"); // ← ちょっと違うかも・・・?(^^;

mtkame
質問者

補足

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

その他の回答 (2)

  • driverII
  • ベストアンサー率27% (248/913)
回答No.3

お使いのDBMSがなんなのかわからないので、曖昧ですが。 引用符を引用符として解釈させる方法が、あるはずです。 つまりI'mをI''mにすると正しく認識されるなど。 で、あとは前処理を行ってから、登録すれば良いのです。 書いてるあいだに#1の方とかぶってしまいました^^

mtkame
質問者

お礼

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

  • funamin
  • ベストアンサー率0% (0/6)
回答No.2

16進数に変換する事によって回避出来ます。 ちなみに「'」シングルコーティションなら CHR(39)で表せます。 それらを活用すればうまくいくのではないでしょうか?? (例) select CHR(39)|| 'TEST' || CHR(39) from dual; CHR(39 ------ 'TEST' 16進数の取得方法は 下記の方法で可能です。 (例) &の16進数は? select rawtohex('&') from dual; RA -- 26

mtkame
質問者

お礼

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

関連するQ&A