UPPER および UCASE 関数

UPPER および UCASE は等価のストリング処理関数で、CHARACTER ストリング・データを処理し、ストリング内の小文字を大文字に変換します。

構文

UPPER および UCASE は両方とも、source_string と同一の新しい文字ストリングを戻します。ただし、英小文字はすべて、対応する大文字に置き換えられます。

以下に例を示します。
UPPER('ABCD')
は、'ABCD' を戻します。
UCASE('abc123')
'ABC123' を戻します。
様々なコード・ページからの文字を大文字に変換する

特定のコード・ページを使用している場合に、UPPER または UCASE 関数を使用すると、そのコード・ページでは相当する大文字を持たない文字が変換されてしまう場合があります。このような変換は、メッセージ・パーサーによってビット・ストリームが Unicode メッセージ・ツリーに変換されるために起こります。 ソースのコード・ページではそれらの文字に相当する大文字が存在しなかったとしても、Unicode コード・ページでは相当する大文字が存在していることがあり、それが UPPER または UCASE 関数によって変換されてしまいます。 ビット・ストリームを元のコード・ページに変換し直しても、これらの文字は元の文字には変換されず、出力メッセージではその文字のところに置換文字が挿入されてしまいます。挿入される置換文字は、元のコード・ページが何であるかによって異なります。例えば、EBCDIC コード・ページへの変換では X'3F' のバイトが挿入され、日本語コード・ページへの変換では X'7F' のバイトが挿入されます。

この問題を解決するには、UPPER 関数や UCASE 関数を使用する代わりに、TRANSLATE 関数を使用して、選択した文字を大文字に変換します。コード・ページに相当する大文字がない文字は、変換の対象から除外されます。

次の例では、入力メッセージのコード・ページが 284 で、InputRoot.XML.MSG.APPDATA エレメントに、コード・ページ 284 には相当する大文字がなく Unicode コード・ページには相当する大文字がある文字が含まれています。 TRANSLATE 関数を使用して、小文字の 'a' から 'z' だけを相当する大文字に変換します。 InputRoot.XML.MSG.APPDATA の中のその他の文字は変換から除外されます。
DECLARE char1 CHAR;
SET char1 = TRANSLATE(InputRoot.XML.MSG.APPDATA,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ');
SET OutputRoot.MQMD.CodedCharSetId = 284;
SET OutputRoot.XML.TEST.translated = char1;
関連概念
ESQL の概要
関連タスク
ESQL の開発
関連資料
TRANSLATE 関数
構文図: 使用可能なタイプ
ESQL ストリング処理関数
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:44:03

ak05280_