SQL 解説書

TRANSLATE

文字ストリング式:

>>-TRANSLATE--(--char-string-exp-------------------------------->
 
>-----+---------------------------------------------------------+>
      |                                       .-,--' '-------.  |
      '-,--to-string-exp--,--from-string-exp--+--------------+--'
                                              '-,--pad-char--'
 
>----)---------------------------------------------------------><
 

漢字ストリング式:

>>-TRANSLATE--(--graphic-string-exp--,--to-string-exp--,--from-string-exp-->
 
     .-,--' '-------.
>----+--------------+--)---------------------------------------><
     '-,--pad-char--'
 

スキーマは SYSIBM です。

TRANSLATE 関数は、ストリング式内の 1 つまたは複数の文字が他の文字に変換された値を戻します。

関数の結果のデータ・タイプとコード・ページは、最初の引き数と同じです。 結果の長さ属性は、最初の引き数と同じになります。 指定した式のいずれかがヌル値 (NULL) の可能性がある場合、 結果も NULL の可能性があります。 指定した式のいずれかがヌル値 (NULL) の場合、 結果も NULL になります。

char-string-exp または graphic-string-exp
変換される文字または漢字ストリング。

to-string-exp
char-string-exp の特定文字の変換後の文字ストリング。

to-string-exp を指定せず、データ・タイプが漢字でない場合、 char-string-exp 内の文字すべてが大文字変換されます (つまり、 文字 a 〜 z は文字 A 〜 Z に変換され、 発音符付きの文字は大文字に相当するものがあればその文字に変換されます。 たとえば、コード・ページ 850 では、e は E に変換されますが、 Y は変換されません。 これは、コード・ページ 850 に &Ye. が含まれていないためです) 。

from-string-exp
このストリングの文字が char-string-exp の中にある場合、 それは to-string-exp の中の対応する文字に変換されることになります。 from-string-exp に重複する文字が含まれている場合は、 最初に見つかった文字が使用され、重複は無視されます。 to-string-expfrom-string-exp より長い場合、 余分な文字は無視されます。 to-string-exp を指定する場合は、 from-string-exp も指定する必要があります。

pad-char-exp
これは、to-string-expfrom-string-exp より短い場合に、 to-string-exp への埋め込みに使用する単一の文字です。 pad-char-exp は長さ属性が 1 でなければなりません。 そうでない場合には、エラーになります。 これを指定しない場合、1 バイトのブランクとみなされます。

引き数には、データ・タイプ CHAR または VARCHAR のいずれかのストリングか、 あるいはデータ・タイプ GRAPHIC または VARGRAPHIC の漢字ストリングを指定できます。 データ・タイプ LONG VARCHAR、LONG VARGRAPHIC、BLOB、CLOB、 または DBCLOB は使用できません。

graphic-string-exp を指定する場合、 pad-char-exp だけが任意選択です (これを指定しない場合、 2 バイトのブランクが使用されます)。 埋め込み文字を含め、各引き数は漢字データ・タイプでなければなりません。

結果は、from-string-exp の中で出現する char-string-exp または graphic-string-exp 内の文字すべてを、 to-string-exp 内の対応する文字に変換した結果のストリング、 あるいは対応する文字がない場合は pad-char-exp で指定される埋め込み文字に変換した結果のストリングになります。

TRANSLATE の結果のコード・ページは、 常に最初のオペランドのコード・ページと同じになります。 最初のオペランドのコード・ページは、決して変換されません。 それ以外の各オペランドは、 最初のオペランドのコード・ページに変換されます。 ただし、そのオペランドまたは最初のオペランドが FOR BIT DATA として定義されている場合は、 変換されません。

引き数のデータ・タイプが CHAR または VARCHAR の場合、 to-string-expfrom-string-exp に対応する文字は、 同じバイト数でなければなりません。 たとえば、1 バイト文字をマルチバイト文字に変換することや、 マルチバイト文字を 1 バイト文字に変換することは無効です。 そのような変換を行うと、エラーになります。 pad-char-exp として有効なマルチバイト文字の第 1 バイトを指定することはできません。 そのように指定すると、SQLSTATE 42815 が戻されます。 pad-char-exp を指定しない場合は、 1 バイトのブランクが使用されます。

char-string-exp だけを指定した場合、 1 バイト文字は大文字変換され、マルチバイト文字はそのままになります。

例:


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]