O operador de concatenação manipula cadeias de caracteres e CLOB
dados. A tabela 4-3 descreve o operador de concatenação.
Tabela 4-3 Concatenação Operador
Operador | ||
---|---|---|
||||/p> |
concatenates character strings and |
SELECT 'Name is ' || last_name FROM employees; |
O resultado de concatenar duas cadeias de caracteres é outra cadeia de caracteres. Se ambas as cadeias de caracteres forem do tipo datatype CHAR
, o resultado tem o tipo datatype CHAR
e é limitado a 2000 caracteres. Se uma ou outra string for do tipo datatype VARCHAR2
, o resultado tem o tipo datatype VARCHAR2
e está limitado a 4000 caracteres. Se qualquer dos argumentos for um CLOB
, o resultado é um CLOB
temporário. Os espaços em branco nas cadeias de caracteres são preservados por concatenação, independentemente dos tipos de dados da cadeia ou CLOB
.
Na maioria das plataformas, o operador de concatenação é duas barras verticais sólidas, como se mostra na Tabela 4-3. No entanto, algumas plataformas IBM utilizam barras verticais quebradas para este operador. Ao mover ficheiros de script SQL entre sistemas com conjuntos de caracteres diferentes, tais como entre ASCII e EBCDIC, as barras verticais podem não ser traduzidas para a barra vertical exigida pelo ambiente alvo da Base de Dados Oracle. A Oracle fornece a função CONCAT
caracteres como alternativa ao operador da barra vertical para casos em que é difícil ou impossível controlar a tradução executada pelos utilitários do sistema operativo ou de rede. Utilizar esta função em aplicações que serão movidas entre ambientes com diferentes conjuntos de caracteres.
embora Oracle trate cadeias de caracteres de comprimento zero como nulos, a concatenação de uma cadeia de caracteres de comprimento zero com outro operando resulta sempre no outro operando, pelo que nulos podem resultar apenas da concatenação de duas cadeias de caracteres nulos. No entanto, isto pode não continuar a ser verdade em futuras versões da Base de Dados Oracle. Para concatenar uma expressão que possa ser nula, usar a função NVL
para converter explicitamente a expressão para uma cadeia de caracteres de comprimento zero.
Ver Também:
-
“Tipos de Dados de Caracteres” para mais informações sobre as diferenças entre os
CHAR
eVARCHAR2
tipos de dados - p> As funções CONCAT e NVL
- p>>> Guia do Desenvolvedor de Aplicações de Base de Dados Oracle – Grandes Objectos para mais informações sobre
CLOB
s
Exemplo de encadeamento Este exemplo cria uma tabela com as colunas CHAR
e VARCHAR2
, insere valores tanto com como sem espaços em branco, e depois selecciona estes valores e concatena-os. Note-se que para ambos CHAR
e VARCHAR2
colunas, os espaços em branco de fuga são preservados.
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