PL/SQL プログラミング入門(1) > エスケープシーケンス

PL/SQL のエスケープ文字

PL/SQL には 改行やタブなど非表示文字を扱うためのバックスラッシュ(\) のような特殊文字はない。

改行やタブ文字を PL/SQL 上でコーディングするには CHR 関数 を使用する。
但し、CHR で改行コードを CHR(10) のように「アスキーコード」でハードコーディングするとアスキーコード・プラットホーム専用となる。(EBCDIC コードで構築した環境と互換性が無くなる。EBCDIC の環境はマイナーなので大した影響は無さそうですが…)

 
文字アスキーコード表記補足
タブCHR(9)\t 相当
CRCHR(13)\r 相当 (CTRL+M)
LFCHR(10)\n 相当 (CTRL+J)
改行CHR(13) || CHR(10)Windows プラットホーム
CHR(10)UNIX、LINUX 系プラットホーム
スペースCHR(32)
引用符(')CHR(39)

エスケープ・シーケンス

単一引用符(') を表現するための様式として単一引用符を2回連続して記述するという「シークエンス(シーケンス)」がある。
シーケンスとは 順序番号のシーケンス というより、スペースシャトル発射までの 「発射シークエンス」 という意味合いに近い。英語では同じ SEQUENCE。

元々のエスケープシーケンスとは、画面には直接表示されない文字列で、 [ESC] 文字コード + コマンド記号 + (パラメータ)というシーケンス(=定義済みの一連の動作)をあらわすものである。一般に '〜Term' と呼ばれる端末エミュレータ、VT-100 互換のターミナルエミュレータのカーソル移動なども、このエスケープシーケンス処理で行なわれている。これら様々な特殊なコマンドセットの総称をエスケープシーケンスと呼んでいる。
C言語 などの開発言語では [ESC] ではないエスケープ文字(\) + 文字 もエスケープシーケンスと呼ばれている。

文字列中の単一引用符

SQL> begin
  2     dbms_output.enable();
  3     dbms_output.put_line('It''s a small world.');
  4  end;
  5  /
It's a small world.

Oracle 10g であれば 単一引用符を別の方法で記述する方法がある。
q'〜' という 「シーケンス」 を使った 代替引用符 で読みやすい表記になる。

SQL> begin
  2     dbms_output.enable();
  3     dbms_output.put_line(q'<It's a small world.>');
  4  end;
  5  /
It's a small world.


エスケープシーケンスの関連トピックス

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle Web セミナー