QA@IT
この質問・回答は、@ITの旧掲示板からインポートされたものです。

SQLのシングルコーテーションについて

いつもお世話になっております。
SQLでの「’」を文字として認識させたいのですがどうしたらいいのでしょうか?

よろしくお願いいたします

質問者:てろ

回答

こんにちわ。

SQLでの「’」を文字として認識させたいのですがどうしたらいいのでしょうか?

具体的な状況が書かれてないので的をはずすかもしれませんが、
エスケープ文字(¥)をつければよいんではないでしょうか?

# 投稿時、開発環境/使用言語/状況くらいは記載した方がより的確なアドバイスを貰えると思います。

[ メッセージ編集済み 編集者: はぐれコ〜ギ〜 編集日時 2003-07-01 11:33 ]

投稿者:はぐれコ〜ギ〜

編集 履歴 (0)

こんにちは。
スレッド見ました。

質問の内容は.Netには関係ないと思いますが...
SQL文ですよね?
シングルコーテーションに関しては、プログラムでINSERT文を行っているならば、保存する前に「禁則文字」としてエラーで回避するのがいいと思います。
ただ、どうしても保存させるのならば、Oracleならば、プロシージャで処理を行えば問題ありません。
あと力技になりますが、【''''】←こんな感じで複数のシングルコーテーションを入力すれば認識するはずです。(シングルコーテーションの数は忘れましたが...)
上記の方法はOracleです。
それ以外のデータベースの場合は分かりません。

投稿者:Mr.タナカ

編集 履歴 (0)

あと力技になりますが、【''''】←こんな感じで複数のシングルコーテーションを
入力すれば認識するはずです。(シングルコーテーションの数は忘れましたが...)

ふたつシングルクォーテーションを重ねればひとつと見てくれるってことです。
数忘れたとかいうほどのものではないですよ。

VB使ったことがある人なら自然じゃないでしょうかね?
文字列中のダブルクォーテーションのエスケープと同じ理屈です。

投稿者:まりり

編集 履歴 (0)

こんにちは。
スレッド見ました。
昨日はOracleの環境がなかったので実験できませんでした。

まりりさんの書き込み (2003-07-02 08:07) より:

あと力技になりますが、【''''】←こんな感じで複数のシングルコーテーションを

入力すれば認識するはずです。(シングルコーテーションの数は忘れましたが...)

ふたつシングルクォーテーションを重ねればひとつと見てくれるってことです。

数忘れたとかいうほどのものではないですよ。

VB使ったことがある人なら自然じゃないでしょうかね?

文字列中のダブルクォーテーションのエスケープと同じ理屈です。

Oracle9iになりますが、ふたつシングルクォーテーションを重ねる方法を試してみました。
【SELECT '' FROM dual】だと、何もでませんが...
【SELECT '''' FROM deal】だと、シングルコーテーションが一つ表示されます。

投稿者:Mr.タナカ

編集 履歴 (0)

Oracle9iになりますが、ふたつシングルクォーテーションを重ねる方法を試してみました。

【SELECT '' FROM dual】だと、何もでませんが...

【SELECT '''' FROM deal】だと、シングルコーテーションが一つ表示されます。

【SELECT '' FROM dual】だと、何もでませんが...

これってただ空文字列を表示しているだけなのでは?

【SELECT '''' FROM deal】だと、シングルコーテーションが一つ表示されます。
は、文字列を表す記号として両端の「'」が使われているので、その中の「''」が
文字として表示されていることになります。

たとえば、別の文字と混ぜて使った場合よく分かると思います。
「ab'cd」と表示したい場合

SELECT 'ab''cd' FROM dual

とか。

投稿者:おっきー

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。