TRANSLATE スカラー関数
TRANSLATE 関数は、ストリング式内の 1 つ以上の文字が他の文字に変換された可能性のある値を戻します。
文字ストリング式:
GRAPHIC ストリング式:
スキーマは SYSIBM です。
この関数は、from-string-exp の中でも出現する char-string-exp または graphic-string-exp 内の文字すべてを、 to-string-exp 内の対応する文字に変換します。 あるいは対応する文字がない場合は pad-char-exp で指定される埋め込み文字に変換します。
- char-string-exp または graphic-string-exp
- 変換するストリング。式は CHAR、VARCHAR、GRAPHIC、VARGRAPHIC、数値、または日時のいずれかの組み込みデータ・タイプの値を戻す必要があります。値が CHAR、VARCHAR、GRAPHIC、または VARGRAPHIC のデータ・タイプではない場合、その値は関数を評価する前に暗黙的に VARCHAR にキャストされます。
- to-string-exp
- 文字のストリング。char-string-exp 内の特定の文字をこのストリングに変換します。
式は CHAR、VARCHAR、GRAPHIC、VARGRAPHIC、数値、または日時のいずれかの組み込みデータ・タイプの値を戻す必要があります。値が CHAR、VARCHAR、GRAPHIC、または VARGRAPHIC のデータ・タイプではない場合、その値は関数を評価する前に暗黙的に VARCHAR にキャストされます。to-string-exp の値を指定せず、データ・タイプが GRAPHIC でない場合、char-string-exp 内の文字すべてが大文字変換されます。つまり、 文字 a から z は文字 A から Z に変換され、 他の文字は大文字に相当するものがあればその文字に変換されます。 例えば、コード・ページ 850 では、é は É に変換されますが、ÿ は変換されません。これは、コード・ページ 850 に Ÿ が組み込まれていないためです。結果の文字のコード・ポイント長が、元の文字のコード・ポイント長と同じでない場合、元の文字は変換されません。
- from-string-exp
- 文字のストリング。このストリングが (char-string-exp 内に見つかった場合) to-string-exp の対応する文字に変換されます。
式は CHAR、VARCHAR、GRAPHIC、VARGRAPHIC、数値、または日時のいずれかの組み込みデータ・タイプの値を戻す必要があります。 値が CHAR、VARCHAR、GRAPHIC、または VARGRAPHIC のデータ・タイプではない場合、その値は関数を評価する前に暗黙的に VARCHAR にキャストされます。from-string-exp に重複する文字が入っている場合は、 最初に見つかった文字が使用され、重複は無視されます。 to-string-exp が from-string-exp より長い場合、余分な文字は無視されます。 to-string-exp を指定する場合は、from-string-exp も指定する必要があります。
- pad-char-exp
- to-string-exp が from-string-exp より短い場合に、to-string-exp への埋め込みに使用する 1 つの文字。 式は CHAR、VARCHAR、GRAPHIC、VARGRAPHIC、数値、または日時のいずれかの組み込みデータ・タイプの値を戻す必要があります。値が CHAR、VARCHAR、GRAPHIC、または VARGRAPHIC のデータ・タイプではない場合、その値は関数を評価する前に暗黙的に VARCHAR にキャストされます。値は、長さ属性がゼロまたは 1 でなければなりません。長さゼロのストリングを指定すると、from-string-exp 内の文字は、to-string-exp 内に対応する文字がなければ、char-string-exp または graphic-string-exp から除去されます。値が指定されない場合には、1 バイトのブランク文字が想定されます。
graphic-string-exp を指定する場合、 pad-char-exp だけがオプションです (値を指定しない場合、 2 バイトのブランク文字が想定されます)。 埋め込み文字を含め、各引数は GRAPHIC データ・タイプでなければなりません。
結果のデータ・タイプおよびコード・ページは、最初の引数のデータ・タイプおよびコード・ページと同じになります。 最初の引数がホスト変数であると、結果のコード・ページは、 データベースのコード・ページになります。 非 Unicode データベースでは、いずれかの引数がグラフィック・ストリングである場合は、すべての引数がグラフィック・ストリングでなければなりません (SQLSTATE 42815)。Unicode データベースでは、最初の引数が FOR BIT DATA 文字ストリングである場合は、他の引数をグラフィック・ストリングにすることはできません (SQLSTATE 42846)。また、最初の引数がグラフィック・ストリングである場合は、他の引数を FOR BIT DATA 文字ストリングにすることはできません (SQLSTATE 42846)。
結果の長さ属性およびストリング単位は、最初の引数と同じになります。引数のいずれかが NULL になる可能性がある場合、結果も NULL になる可能性があります。 引数のいずれかが NULL の場合、その結果は NULL 値です。
引数が CHAR または VARCHAR のデータ・タイプの場合、to-string-exp と from-string-exp の対応する文字は、同じバイト数でなければなりません (ストリングの長さがゼロの場合を除く)。例えば、1 バイト文字をマルチバイト文字に変換することや、 マルチバイト文字を 1 バイト文字に変換することは無効です。 pad-char-exp 引数が、有効なマルチバイト文字の第 1 バイトになることはありません (SQLSTATE 42815)。
文字のマッチングには、バイナリー比較が使用されます。データベースの照合は使用されません。
char-string-exp のみを指定した場合、 1 バイト文字は大文字変換され、マルチバイト文字はそのままになります。
例
- 例 1: 以下の例は、値 'HANAUMA BAY' を返します。
TRANSLATE(:SITE) - 例 2: 以下の例は、値 'Hanauma jay' を返します。
TRANSLATE(:SITE, 'j', 'B') - 例 3: 以下の例は、値 'Heneume Bey' を返します。
TRANSLATE(:SITE, 'ei', 'aa') - 例 4: 以下の例は、値 'HAnAumA bA%' を返します。
TRANSLATE(:SITE, 'bA', 'Bay', '%') - 例 5: 以下の例は、値 'Hana ma ray' を返します。
TRANSLATE(:SITE, 'r', 'Bu')
