WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

UPPER および UCASE 関数

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

構文

構文図を読む構文図をスキップする
>>-+-UPPER-+--(--source_string--)------------------------------><
   '-UCASE-'                        

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;
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:47:25


参照トピック参照トピック | バージョン 8.0.0.5 | ak05280_