プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
11gリリース2 (11.2)
B56299-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

CHR

構文

chr.gifの説明が続きます。
図「chr.gif」の説明

用途

CHRは、データベース・キャラクタ・セットまたは各国語キャラクタ・セット(USING NCHAR_CSを指定している場合)の中のnに等しい2進数を持つ文字を、VARCHAR2値として戻します。

シングルバイト・キャラクタ・セットの場合、Oracle Databaseは、n > 256に対してn mod 256に等しい2進数を戻します。マルチバイト・キャラクタ・セットの場合、nは1つのコードポイント全体として解決される必要があります。無効なコードポイントは検証されないため、無効なコードポイントを指定した場合の結果は、予測不能です。

このファンクションは、引数として、NUMBER値、または暗黙的にNUMBER型に変換可能な任意の値を取り、文字を戻します。


注意:

(オプションのUSING NCHAR_CS句の有無にかかわらず)CHRファンクションを使用すると、ASCIIおよびEBCDICベースのマシン・アーキテクチャ間で移植不可能なコードが戻されます。


関連項目:

暗黙的な変換の詳細は、「NCHR」および表3-10「暗黙的な型変換のマトリックス」を参照してください。

次の例は、データベース・キャラクタ・セットがWE8ISO8859P1と定義されているASCIIベースのマシンで実行されています。

SELECT CHR(67)||CHR(65)||CHR(84) "Dog"
  FROM DUAL;

Dog
---
CAT

キャラクタ・セットがWE8EBCDIC1047のEBCDICベースのマシンでも同じ結果を戻すには、前述の例を次のように修正する必要があります。

SELECT CHR(195)||CHR(193)||CHR(227) "Dog"
  FROM DUAL; 

Dog 
--- 
CAT 

マルチバイト・キャラクタ・セットの場合、このように連結しても異なる結果となります。たとえば、a1a2(a1は1つ目のバイト、a2は2つ目のバイト)という16進数の値を持つマルチバイト文字の場合、nに対して「a1a2」に等しい10進数、つまり41378を指定する必要があります。

SELECT CHR(41378)
  FROM DUAL;

次の例のように、a1に等しい10進数とa2に等しい10進数を連結させて指定することはできません。

SELECT CHR(161)||CHR(162)
  FROM DUAL;

ただし、次の例のように、マルチバイト文字を連結するマルチバイトのコードポイント全体を連結することは可能です。この例では、a1a2a1a3の16進数を持つマルチバイト文字を連結しています。

SELECT CHR(41378)||CHR(41379)
  FROM DUAL;

次の例では、各国語キャラクタ・セットがUTF16であると仮定します。

SELECT CHR (196 USING NCHAR_CS)
  FROM DUAL; 

CH 
-- 
Ä