Funções UPPER e UCASE

UPPER e UCASE são funções de manipulação de cadeias equivalentes que manipulam os dados da cadeia CHARACTER e convertem caracteres minúsculos em uma cadeia para maiúsculas.

SINTAXE

UPPER e UCASE retornam uma nova cadeia de caracteres, que é idêntica a source_string, exceto que todas as letras minúsculas são substituídas pelas letras maiúsculas correspondentes.

Por exemplo:
UPPER('ABCD')
returns 'ABCD'.
UCASE('abc123')
retorna 'ABC123'.
Convertendo Caracteres de Diferentes Páginas de Códigos para Maiúsculos

Se você estiver utilizando determinadas páginas de códigos, os caracteres sem equivalente maiúsculo em sua página de códigos poderão ser convertidos ao utilizar a função UPPER ou UCASE. Essa conversão ocorre porque o fluxo de bits é convertido para uma árvore de mensagens Unicode pelo analisador de mensagens. Mesmo que os caracteres não tenham equivalente maiúsculo na página de códigos de origem, ainda assim eles podem ter um equivalente maiúsculo na página de códigos Unicode e são convertidos pela função UPPER ou UCASE. Quando o fluxo de bits é reconvertido para a página de códigos original, esses caracteres não podem ser reconvertidos e um caractere de substituição é inserido na mensagem de saída para cada caractere. O caractere de substituição inserido depende da página de códigos original. Por exemplo, a conversão para uma página de códigos EBCDIC insere um byte X'3F' e a conversão para uma página de códigos em japonês insere um byte X'7F'.

Uma solução para esse problema é utilizar a função TRANSLATE para converter caracteres selecionados para maiúsculos, em vez de utilizar a função UPPER ou UCASE. Quaisquer caracteres que não tiverem equivalente maiúsculo na página de códigos serão excluídos da conversão.

No exemplo a seguir, a mensagem de entrada está na página de códigos 284 e o elemento InputRoot.XML.MSG.APPDATA contém caracteres que não possuem um equivalente maiúsculo na página de códigos 284, mas possuem equivalentes maiúsculos na página de códigos Unicode. A função TRANSLATE é utilizada para converter apenas os caracteres minúsculos de 'a' até 'z' para seus caracteres maiúsculos equivalentes. Quaisquer outros caracteres em InputRoot.XML.MSG.APPDATA são excluídos da conversão.
DECLARE char1 CHAR;
SET char1 = TRANSLATE(InputRoot.XML.MSG.APPDATA,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ');
SET OutputRoot.MQMD.CodedCharSetId = 284;
SET OutputRoot.XML.TEST.translated = char1;
Conceitos relacionados
Visão Geral do ESQL
Tarefas relacionadas
Desenvolvendo ESQL
Referências relacionadas
Função TRANSLATE
Diagramas de Sintaxe: Tipos Disponíveis
Funções de Manipulação de Cadeia ESQL
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:12:44

ak05280_