Funktionen UPPER und UCASE

UPPER und UCASE sind funktional entsprechende Funktionen zur Bearbeitung von Zeichenfolgen, mit denen CHARACTER-Zeichenfolgedaten geändert und Kleinbuchstaben in einer Zeichenfolge in Großbuchstaben umgewandelt werden.

SYNTAX

Sowohl UPPER als auch UCASE geben eine neue Zeichenfolge zurück, die mit der Quellenzeichenfolge identisch ist, außer dass alle Kleinbuchstaben durch die entsprechenden Großbuchstaben ersetzt wurden.

Beispiel:
UPPER('ABCD')
gibt 'ABCD' zurück.
UCASE('abc123')
gibt 'ABC123' zurück.
Zeichen von unterschiedlichen Codepages umwandeln

Bei der Verwendung bestimmter Codepages werden Zeichen ohne Entsprechung in Großschreibung möglicherweise umgewandelt, wenn Sie die Funktion UPPER oder UCASE benutzen. Diese Konvertierung tritt auf, da der Bitstrom vom Nachrichten-Parser in eine Unicode-Nachrichtenbaumstruktur konvertiert wird. Selbst wenn Zeichen keine Entsprechung in Großschreibung in der Quellcodeseite aufweisen, können sie diese dennoch in der Unicode-Codepage haben und werden von der UPPER oder UCASE-Funktion konvertiert. Wenn der Bitstrom zurück zur original Codepage konvertiert wird, können diese Zeichen nicht zurück konvertiert werden, und ein Ersatzzeichen wird in der Ausgabenachricht für jedes Zeichen eingefügt. Das eingefügte Ersatzzeichen hängt von der ursprünglichen Codepage ab. Beispiel: Bei der Konvertierung in eine EBCDIC-Codepage wird ein X'3F'-Byte eingefügt und bei der Konvertierung in einer japanische Codepage ein X'7F'-Byte.

Eine Lösung zu diesem Problem besteht darin, mit der TRANSLATE-Funktion ausgewählte Zeichen in Großbuchstaben umzuwandeln und nicht die UPPER- oder UCASE-Funktion zu verwenden. Jegliche Zeichen, die keine Entsprechung in Großbuchstaben in der Codepage enthalten, werden aus der Konvertierung ausgeschlossen.

Im folgenden Beispiel befindet sich die Eingabenachricht in Codepage 284, und das Element InputRoot.XML.MSG.APPDATA enthält Zeichen, die keine Entsprechung in Großbuchstaben in der Codepage 284 haben, sondern diese in der Unicode-Codepage aufweisen. Mit Hilfe der TRANSLATE-Funktion werden nur die Kleinbuchstaben 'a' bis 'z' in ihre entsprechenden Großbuchstaben umgewandelt. Alle anderen Zeichen in InputRoot.XML.MSG.APPDATA werden nicht konvertiert.
DECLARE char1 CHAR;
SET char1 = TRANSLATE(InputRoot.XML.MSG.APPDATA,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ');
SET OutputRoot.MQMD.CodedCharSetId = 284;
SET OutputRoot.XML.TEST.translated = char1;
Zugehörige Konzepte
Übersicht zu ESQL
Zugehörige Tasks
ESQL erstellen
Zugehörige Verweise
TRANSLATE-Funktion
Syntaxdiagramme: Verfügbare Typen
ESQL-Funktionen zur Bearbeitung von Zeichenfolgen
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:29:28

ak05280_