Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

TRANSLATE() - Zeichenkette transliterieren bzw. transcodieren

Funktionsgruppe: Zeichenkettenfunktion

TRANSLATE() transliteriert, d.h. wandelt eine alphanumerische Zeichenkette in eine National-Zeichenkette um oder umgekehrt, siehe „ Basishandbuch“.

TRANSLATE() transcodiert, d.h. wandelt eine in eine Zeichenkette im Zeichensatz UTFE in eine National-Zeichenkette im Zeichensatz UTF-16 um oder umgekehrt, siehe „ Basishandbuch“.


TRANSLATE ( ausdruck

           USING [[ catalog. ]INFORMATION_SCHEMA.] transname [DEFAULT zeichen ] [ ,länge ] )


zeichen ::= ausdruck
länge ::= vorzeichenlose_ganzzahl



ausdruck

Alphanumerischer Ausdruck oder National-Ausdruck.
Seine Auswertung ergibt entweder eine alphanumerische Zeichenkette oder eine National-Zeichenkette. Siehe auch Abschnitt „Verträglichkeit von Datentypen".ausdruck darf kein multipler Wert mit Dimension > 1 sein.


transname

Einfacher Name für eine Transliteration von EBCDIC nach Unicode (Zeichensatz UTF-16) und umgekehrt bzw. für eine Transcodierung von UTF-EBCDIC nach UTF-16 und umgekehrt.

In SESAM/SQL sind alle Transliterationsnamen vordefiniert. Es sind entweder die CCS-Namen, die im BS2000-Subsystem XHCS für die Transliteration zwischen EBCDIC und UTF-16 definiert sind, oder CATALOG_DEFAULT für die Transliteration in der voreingestellten Datenbank, falls für diese CODE_TABLE nicht auf _NONE_ gesetzt ist (siehe CREATE/ALTER CATALOG-Anweisungen im Handbuch „ SQL-Sprachbeschreibung Teil 2: Utilities“). Der CCS-Name darf maximal 8 Zeichen lang sein.

Wenn ausdruck ein alphanumerischer Ausdruck ist und der Transliterationsname UTFE (!) angegeben wird, dann wird ausdruck von UTF-EBCDIC (Zeichensatz UTFE) in den Zeichensatz UTF-16 transcodiert.

Wenn ausdruck ein National-Ausdruck ist (d.h. der Zeichensatz ist UTF-16) und der Transliterationsname UTFE angegeben wird, dann wird ausdruck von UTF-16 in den Zeichensatz UTFE transcodiert.

Die Transliteration bzw. Transcodierung kann durch einen Datenbanknamen und den Schema-Namen INFORMATION_SCHEMA qualifiziert werden, ansonsten wird das IN-FORMATION_SCHEMA der voreingestellten Datenbank angenommen.


zeichen

Mit zeichen können Sie ein Ersatzzeichen festlegen, das ausgegeben werden soll als Ersatz für Zeichen, die mit dem angegebenen transname nicht bearbeitet werden können. Wenn Sie DEFAULT zeichen nicht angegeben haben und ausdruck ein Zeichen enthält, das mit dem angegebenen transname nicht bearbeitet werden kann, wird die enthaltende SQL-Anweisung mit SQLSTATE abgebrochen. Wenn ausdruck den alphanumerischen Datentyp CHAR oder VARCHAR hat, dann muss das Ersatzzeichen den National-Datentyp NCHAR(1) bzw. NVARCHAR( n) mit n>=1 haben. Wenn ausdruck den National-Datentyp NCHAR oder NVARCHAR hat, dann muss das Ersatzzeichen den alphanumerischen Datentyp CHAR(1) bzw.VARCHAR( n) mit n>=1 haben.


länge

Maximale Länge der transliterierten bzw. trancodierten Zeichenkette in Code Units.

1 <= länge <= 16000, wenn ausdruck eine alphanumerische Zeichenkette ist (Transliterationsname ist ein EBCDIC-Zeichensatz oder UTFE).

1 <= länge <= 32000 wenn ausdruck eine National-Zeichenkette ist. (Transliterationsname ist ein EBCDIC-Zeichensatz).

Länge nicht angegeben:
Das Ergebnis hat die maximal mögliche Länge (siehe oben).


Ergebnis

Wenn ausdruck und/oder zeichen den NULL-Wert ergibt, ist das Ergebnis der NULL-Wert.

Sonst:

Das Ergebnis ist die Zeichenkette in der angegebenen bzw. der maximalen Länge, die sich bei der Transliteration bzw. Transcodierung von ausdruck ergibt.

Wenn bei der Transliteration das Ersatzzeichen verwendet werden musste, wird die Warnung SQLSTATE '01SBB' ausgegeben.

Wenn die Länge der transliterierten bzw. transcodierten Zeichenkette größer ist als die angegebene oder die maximale länge, dann wird die Funktion mit SQLSTATE abgebrochen.


Datentyp:

Wenn ausdruck den alphanumerischen Datentyp CHAR( n) oder VARCHAR( n) hat, dann hat das Ergebnis den National-Datentyp NVARCHAR( n).

Wenn ausdruck den National-Datentyp NCHAR(n) oder NVARCHAR(n) hat, dann hat das Ergebnis bei Transliteration den alphanumerischen Datentyp VARCHAR(n) und bei Transcoding den National-Datentyp NVARCHAR(n) .


Beispiele


Die angegebene National-Zeichenfolge soll mit der Transliteration EDF03IRV in den Standard-Zeichensatz von BS2000 transliteriert werden. Nicht-darstellbare Zeichen werden als Fragezeichen dargestellt.

TRANSLATE (NX'0041004200430308' USING

WELTKUNDEN.INFORMATION_SCHEMA.EDF03IRV DEFAULT '?')

Das Ergebnis ist die Zeichenkette „ABC?“.


Die angegebene alphanumerische Zeichenfolge soll als Zeichenfolge mit dem Zeichensatz UTF-EBCDIC interpretiert und in den Unicode-Zeichensatz UTF-16 transcodiert werden.

TRANSLATE ('ABC' USING UTFE)

004100420043


Interpretieren einer Datei NAMETITEL.TXT im Zeichensatz UTFE (erstellt z.B. mit UNLOAD) als CSV-Datei.

CREATE VIEW MYVIEW(x,y) AS
SELECT TRANSLATE(name USING UTFE), TRANSLATE(titel USING UTFE)
FROM TABLE(CSV(FILE 'NAMETITEL.TXT' DELIMITER ';',CHAR(25),VARCHAR(16)))
AS T(name,titel)