- ベストアンサー
SQL文の中に引用符を入れたい
update DATABASE set Data1 = "ABCDEFG" where ID = 1 上のようなSQL文のデータABCDEFGの部分が、たとえば I'm a boy. とか、 You are "crazy"! のような引用符を含んだデータになると、引用符以下はデータとして認識されなくなってしまいます。 このような問題はどうやって回避すればいいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
制御文字、特殊文字は2つ重ねることで通常の文字列とおなじ解釈になります。 I''m a boy. You are ""crazy""! printf("D:\\Hello\\World!\n"); // ← ちょっと違うかも・・・?(^^;
その他の回答 (2)
- driverII
- ベストアンサー率27% (248/913)
お使いのDBMSがなんなのかわからないので、曖昧ですが。 引用符を引用符として解釈させる方法が、あるはずです。 つまりI'mをI''mにすると正しく認識されるなど。 で、あとは前処理を行ってから、登録すれば良いのです。 書いてるあいだに#1の方とかぶってしまいました^^
お礼
回答ありがとうございました。「前処理」という言葉でひらめきました。
- funamin
- ベストアンサー率0% (0/6)
16進数に変換する事によって回避出来ます。 ちなみに「'」シングルコーティションなら CHR(39)で表せます。 それらを活用すればうまくいくのではないでしょうか?? (例) select CHR(39)|| 'TEST' || CHR(39) from dual; CHR(39 ------ 'TEST' 16進数の取得方法は 下記の方法で可能です。 (例) &の16進数は? select rawtohex('&') from dual; RA -- 26
お礼
回答ありがとうございました。やはり文字列データそのものを変換をしなければならないようですね。
補足
早速の回答ありがとうございます。 説明不足がありました。実は。WEB上でフォームからデータを取り込むことを考えています。ですので、フォームから取り込んだ文字列に引用符が含まれていた場合のことをお聞きしようと思ったのですが...いずれにしても取り込んだ後で変換するなどの方法が必要のようですね。