Funciones UPPER y UCASE

UPPER y UCASE son funciones de manipulación de series de caracteres equivalentes que manipulan datos de series de caracteres de tipo CHARACTER y convierten los caracteres en minúsculas de una serie de caracteres a mayúsculas.

SINTAXIS

Las funciones LOWER y UCASE devuelven una nueva serie de caracteres, que es idéntica a source_string, con la excepción de que todas las letras en minúsculas se sustituyen por las letras en mayúsculas correspondientes.

Por ejemplo:
UPPER('ABCD')
devuelve 'ABCD'.
UCASE('abc123')
devuelve 'ABC123'.
Conversión de caracteres de páginas de códigos diferentes a mayúsculas

Si está utilizando ciertas páginas de códigos, los caracteres que no tienen ningún equivalente en mayúsculas en su página de códigos pueden convertirse cuando utilice la función UPPER o UCASE. Esta conversión tiene lugar porque el analizador de mensajes convierte la corriente de bits en un árbol de mensaje Unicode. Aunque los caracteres pueden no tener ningún equivalente en mayúsculas en la página de códigos origen, pueden tener, sin embargo, un equivalente en mayúsculas en la página de códigos Unicode, y se convierten con la función UPPER o UCASE. Cuando la corriente de bits se convierte de nuevo a la página de códigos original, estos caracteres no se pueden volver a convertir, y se inserta un carácter de sustitución en el mensaje de salida para cada carácter. El carácter de sustitución que se inserta depende de la página de códigos original. Por ejemplo, la conversión a una página de códigos EBCDIC inserta un byte X'3F' y la conversión a una página de códigos japonesa inserta un byte X'7F'.

Una solución a este problema es utilizar la función TRANSLATE para convertir caracteres seleccionados a mayúsculas, en lugar de utilizar la función UPPER o UCASE. Todos los caracteres que no tienen equivalente en mayúsculas en la página de códigos se excluyen de la conversión.

En el ejemplo siguiente, el mensaje de entrada está en la página de códigos 284, y el elemento InputRoot.XML.MSG.APPDATA contiene caracteres que no tienen un equivalente en mayúsculas en la página de códigos 284, pero que sí tienen equivalentes en mayúsculas en la página de códigos Unicode. La función TRANSLATE se utiliza para convertir solamente los caracteres en minúsculas 'a' a 'z' a sus caracteres equivalentes en mayúsculas. Cualquier otro carácter en InputRoot.XML.MSG.APPDATA se excluye de la conversión.
DECLARE char1 CHAR;
SET char1 = TRANSLATE(InputRoot.XML.MSG.APPDATA,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ');
SET OutputRoot.MQMD.CodedCharSetId = 284;
SET OutputRoot.XML.TEST.translated = char1;
Conceptos relacionados
Visión general de ESQL
Tareas relacionadas
Desarrollo de ESQL
Referencia relacionada
Función TRANSLATE
Diagramas de sintaxis: tipos disponibles
Funciones de manipulación de series de caracteres ESQL
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última actualización : 2009-02-16 13:55:31

ak05280_