Der Verkettungsoperator manipuliert Zeichenketten und CLOB
-Daten. Tabelle 4-3 beschreibt den Verkettungsoperator.
Tabelle 4-3 Verkettungsoperator
Operator | Zweck | Beispiel |
---|---|---|
| |
Verkettet Zeichenketten und |
SELECT 'Name is ' || last_name FROM employees; |
Das Ergebnis der Verkettung zweier Zeichenketten ist eine weitere Zeichenkette. Wenn beide Zeichenketten vom Datentyp CHAR
sind, hat das Ergebnis den Datentyp CHAR
und ist auf 2000 Zeichen begrenzt. Wenn einer der beiden Strings vom Datentyp VARCHAR2
ist, hat das Ergebnis den Datentyp VARCHAR2
und ist auf 4000 Zeichen begrenzt. Wenn eines der beiden Argumente ein CLOB
ist, ist das Ergebnis ein temporäres CLOB
. Nachfolgende Leerzeichen in Zeichenketten werden durch die Verkettung erhalten, unabhängig von den Datentypen der Zeichenkette oder des CLOB
.
Auf den meisten Plattformen besteht der Verkettungsoperator aus zwei durchgehenden vertikalen Balken, wie in Tabelle 4-3 gezeigt. Einige IBM-Plattformen verwenden jedoch unterbrochene vertikale Balken für diesen Operator. Beim Verschieben von SQL-Skriptdateien zwischen Systemen mit unterschiedlichen Zeichensätzen, z. B. zwischen ASCII und EBCDIC, werden die vertikalen Balken möglicherweise nicht in die von der Zielumgebung der Oracle-Datenbank benötigten vertikalen Balken übersetzt. Oracle bietet die CONCAT
-Zeichenfunktion als Alternative zum Senkrechtstrich-Operator für Fälle an, in denen es schwierig oder unmöglich ist, die von Betriebssystem- oder Netzwerkdienstprogrammen durchgeführte Übersetzung zu kontrollieren. Verwenden Sie diese Funktion in Anwendungen, die zwischen Umgebungen mit unterschiedlichen Zeichensätzen verschoben werden.
Obwohl Oracle Zeichenketten der Länge Null als Nullen behandelt, ergibt die Verkettung einer Zeichenkette der Länge Null mit einem anderen Operanden immer den anderen Operanden, so dass Null nur aus der Verkettung von zwei Null-Zeichenketten resultieren kann. Dies ist jedoch in zukünftigen Versionen von Oracle Database möglicherweise nicht mehr der Fall. Um einen Ausdruck zu verketten, der null sein könnte, verwenden Sie die Funktion NVL
, um den Ausdruck explizit in eine Zeichenkette der Länge null zu konvertieren.
Siehe auch:
-
„Zeichendatentypen“ für weitere Informationen zu den Unterschieden zwischen den Datentypen
CHAR
undVARCHAR2
-
Die Funktionen CONCAT und NVL
-
Oracle Database Application Developer’s Guide – Large Objects für weitere Informationen über
CLOB
s
Beispiel für Verkettung Dieses Beispiel erstellt eine Tabelle mit den beiden Spalten CHAR
und VARCHAR2
, fügt Werte sowohl mit als auch ohne nachgestellte Leerzeichen ein und wählt dann diese Werte aus und verkettet sie. Beachten Sie, dass für die Spalten CHAR
und VARCHAR2
die nachgestellten Leerzeichen erhalten bleiben.
CREATE TABLE tab1 (col1 VARCHAR2(6), col2 CHAR(6), col3 VARCHAR2(6), col4 CHAR(6) );INSERT INTO tab1 (col1, col2, col3, col4) VALUES ('abc', 'def ', 'ghi ', 'jkl');SELECT col1||col2||col3||col4 "Concatenation" FROM tab1;Concatenation------------------------abcdef ghi jkl