L’operatore di concatenazione manipola stringhe di caratteri e dati CLOB
. La Tabella 4-3 descrive l’operatore di concatenazione.
Tabella 4-3 Operatore di concatenazione
Operatore | Scopo | Esempio |
---|---|---|
|| |
Concatena stringhe di caratteri e |
SELECT 'Name is ' || last_name FROM employees; |
Il risultato della concatenazione di due stringhe di caratteri è un’altra stringa di caratteri. Se entrambe le stringhe di caratteri sono di tipo CHAR
, il risultato ha tipo CHAR
ed è limitato a 2000 caratteri. Se una delle due stringhe è di tipo VARCHAR2
, il risultato ha tipo VARCHAR2
ed è limitato a 4000 caratteri. Se uno dei due argomenti è un CLOB
, il risultato è un CLOB
temporaneo. Gli spazi vuoti finali nelle stringhe di caratteri sono preservati dalla concatenazione, indipendentemente dai tipi di dati della stringa o del CLOB
.
Sulla maggior parte delle piattaforme, l’operatore di concatenazione è costituito da due barre verticali continue, come mostrato nella Tabella 4-3. Tuttavia, alcune piattaforme IBM usano barre verticali spezzate per questo operatore. Quando si spostano file di script SQL tra sistemi che hanno diversi set di caratteri, come tra ASCII e EBCDIC, le barre verticali potrebbero non essere tradotte nella barra verticale richiesta dall’ambiente Oracle Database di destinazione. Oracle fornisce la funzione CONCAT
carattere come alternativa all’operatore della barra verticale per i casi in cui è difficile o impossibile controllare la traduzione eseguita dal sistema operativo o dalle utility di rete. Usare questa funzione in applicazioni che saranno spostate tra ambienti con set di caratteri diversi.
Anche se Oracle tratta le stringhe di caratteri di lunghezza zero come null, concatenando una stringa di caratteri di lunghezza zero con un altro operando si ottiene sempre l’altro operando, quindi null può risultare solo dalla concatenazione di due stringhe null. Tuttavia, questo potrebbe non continuare ad essere vero nelle versioni future di Oracle Database. Per concatenare un’espressione che potrebbe essere nulla, usate la funzione NVL
per convertire esplicitamente l’espressione in una stringa di lunghezza zero.
Vedi anche:
-
“Tipi di carattere” per maggiori informazioni sulle differenze tra i
CHAR
eVARCHAR2
tipi di carattere -
Le funzioni CONCAT e NVL
-
Oracle Database Application Developer’s Guide – Large Objects per maggiori informazioni su
CLOB
s
Esempio di concatenazione Questo esempio crea una tabella con entrambe le colonne CHAR
e VARCHAR2
, inserisce valori sia con che senza spazi vuoti, e poi seleziona questi valori e li concatena. Notate che per entrambe le colonne CHAR
e VARCHAR2
, gli spazi vuoti sono conservati.
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