De aaneenschakelingsoperator manipuleert tekenreeksen en CLOB
gegevens. In Tabel 4-3 wordt de aaneenschakelingsoperator beschreven.
Tabel 4-3 Aaneenschakelingsoperator
Uitvoerder | Doel | Voorbeeld |
---|---|---|
| |
Concateneert tekenreeksen en |
SELECT 'Name is ' || last_name FROM employees; |
Het resultaat van het aaneenschakelen van twee tekenreeksen is een andere tekenreeks. Als beide tekenreeksen van het datatype CHAR
zijn, heeft het resultaat het datatype CHAR
en is het beperkt tot 2000 tekens. Als een van beide strings van datatype VARCHAR2
is, heeft het resultaat datatype VARCHAR2
en is het beperkt tot 4000 tekens. Als een van beide argumenten een CLOB
is, is het resultaat een tijdelijke CLOB
. Spaties achter in tekenreeksen blijven behouden door aaneenschakeling, ongeacht de datatypen van de tekenreeks of CLOB
.
Op de meeste platforms bestaat de aaneenschakelingsoperator uit twee vaste verticale balken, zoals weergegeven in Tabel 4-3. Sommige IBM-platforms gebruiken echter gebroken verticale balken voor deze operator. Bij het verplaatsen van SQL-scriptbestanden tussen systemen met verschillende tekensets, zoals tussen ASCII en EBCDIC, worden verticale balken mogelijk niet vertaald naar de verticale balk die wordt vereist door de doelomgeving van de Oracle Database. Oracle biedt de tekenfunctie CONCAT
als een alternatief voor de verticale balk-operator voor gevallen waarin het moeilijk of onmogelijk is om de vertaling te controleren die wordt uitgevoerd door het besturingssysteem of netwerkhulpprogramma’s. Gebruik deze functie in toepassingen die zullen worden verplaatst tussen omgevingen met verschillende tekensets.
Hoewel Oracle tekenreeksen van nul lengte behandelt als nulls, resulteert het aaneenschakelen van een tekenreeks van nul lengte met een andere operand altijd in de andere operand, dus null kan alleen resulteren uit de aaneenschakeling van twee null tekenreeksen. Het is echter mogelijk dat dit in toekomstige versies van Oracle Database niet meer het geval zal zijn. Om een expressie die null zou kunnen zijn aan elkaar te plakken, gebruikt u de functie NVL
om de expressie expliciet om te zetten in een string met een lengte van nul.
Zie ook:
-
“Character Datatypes” voor meer informatie over de verschillen tussen de
CHAR
enVARCHAR2
datatypes -
De functies CONCAT en NVL
-
Oracle Database Application Developer’s Guide – Large Objects voor meer informatie over
. Grote Objecten voor meer informatie over CLOB
s
Concatenatievoorbeeld Dit voorbeeld maakt een tabel met zowel CHAR
als VARCHAR2
kolommen, voegt waarden in zowel met als zonder spaties, en selecteert deze waarden en voegt ze samen. Merk op dat voor zowel CHAR
als VARCHAR2
kolommen, de spaties behouden blijven.
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