SQL 関数一覧 (A‐D) > ASCII、CHR、NCHR

文字を文字コードに、コードを文字に、文字コードを NCHAR に変換

syntax

ASCII ( string )

return [ NUMBER ]

parameter

string文字列式

return

  • 文字列の「最初」の1文字目の文字コード番号(コードポイント)

avail

  • SQL および PL/SQL の両方で使用可能。

syntax

CHR ( code_point )
CHR ( code_point USING NCHAR_CS )
NCHR ( code_point )
return [ VARCHAR2 | NVARCHAR2 ]

parameter

code_point単一文字に変換可能な文字コード番号 10進数

return

  • コード番号 code_point と同じバイナリコードをもつ文字

avail

  • SQL および PL/SQL の両方で使用可能。

ASCII 関数の内容

文字列 string の1文字目の「データベースキャラクタセット」における文字コード(文字コードポイント)を戻す。
プラットホームが EBCDIC 環境 (UTFE) の場合には EBCDIC コードを戻す。

CHR 関数の内容

文字コード code_point に該当するデータベースキャラクタセットの文字を戻す。 USING NCHAR_CS オプションを使用することで各国語キャラクタセット上で一致する文字を取得する。
つまり、同じ コードポイント code_point を指定しても「データベースキャラクタセット」と「各国語キャラクタセット」で異なる文字にマッピングする。

マニュアルに書かれていないが USING NCHAR_CS の代わりに USING CHAR_CS と記述するとデータベースキャラクタセットの文字となるが他の任意のキャラクタセットではエラーになる。

NCHR 関数の内容

CHR ( code_point USING NCHAR_CS ) と同じ。

指定したコードポイントに該当する各国語キャラクタセット上の文字を VARCHAR2 で戻す。

CHR 使用例

CHR は文中に表現できない文字をあらわすのに使用することが多い。⇒ エスケープシーケンス
CHR(13) || CHR(10) = キャリッジリターン(CR)、ラインフィード(LF) = 改行コード(※) / CHR(39) = (')単一引用符

(※) アスキーコードベースの Windows 系での改行コードは CHR(13) + CHR(10) であるが UNIX 系では CHR(10) のみ
さらに EBCDIC ベースの場合には LF が CHR(21) または CHR(37) に定義されいている。

単一引用符を表現する場合

It's a ''pen'' を あらわすのに
(1) 'It'''s a ''''pen'''''
(2) 'It' || CHR(39) || 's a '|| CHR(39) || CHR(39)|| 'pen'|| CHR(39) || CHR(39)

(1) の場合、単一引用符(')を 1 つ間違えるとエラーになる。 ケースによっては CHR(39) の方が便利かもしれない。

Oracle 10g の リテラル表記 を使えばスマートに記述できる。引用符文字定義 を使用する。

引用符デリミタを 番号記号('#') で定義した例

q'#It's a ''pen''#'

引用符デリミタを括弧に({ [ < () 再定義する場合には対となる閉じ括弧を使用する。

q'{It's a ''pen''}'        q'<It's a ''pen''>'   
q'[It's a ''pen'']'        q'(It's a ''pen'')'


文字コードの種類

SQL 関数 - ASCII,CHR,NCHR 関連

 
アルファベット別 関数一覧 ショートカット
ABCDEFG
HILMNOP
RSTUVWX
日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle のライセンスがわからない…
Oracle Direct (ネットで聞いても最後はここで要確認)