En Oracle, CONCAT()
La función realiza una concatenación de cadenas en sus argumentos. Devuelve la cadena que resulta de concatenar sus argumentos.
La concatenación es la operación de unir múltiples cadenas de un extremo a otro.
Sintaxis
La sintaxis es así:
CONCAT(char1, char2)
Donde ambos argumentos pueden ser cualquiera de los tipos de datos CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
o NCLOB
.
Ejemplo
Aquí hay un ejemplo simple para demostrarlo:
SELECT CONCAT('Ponzi', 'Invest')
FROM DUAL;
Resultado:
CONCAT('PONZI','INVEST') ___________________________ PonziInvest
Valores nulos
Concatenar una cadena con null
devuelve la cadena:
SET NULL 'null';
SELECT
CONCAT('Ponzi', null),
CONCAT(null, 'Invest')
FROM DUAL;
Resultado:
CONCAT('PONZI',NULL) CONCAT(NULL,'INVEST') _______________________ ________________________ Ponzi Invest
Pero si ambos argumentos son null
, el resultado es null
:
SET NULL 'null';
SELECT CONCAT(null, null)
FROM DUAL;
Resultado:
CONCAT(NULL,NULL) ____________________ null
De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que null
ocurre como resultado de un SQL SELECT
declaración.
Sin embargo, puede usar SET NULL
para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null
debe ser devuelto.
Recuento de argumentos incorrecto
Llamando a CONCAT()
sin pasar ningún argumento devuelve un error:
SELECT CONCAT()
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT CONCAT() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
Y pasar el número incorrecto de argumentos da como resultado un error:
SELECT CONCAT('Gosh', 'Dang', 'Investments')
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT CONCAT('Gosh', 'Dang', 'Investments') FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
Conjunto de caracteres y tipo de datos
La cadena resultante está en el mismo conjunto de caracteres que el primer argumento, sin embargo, su tipo de datos depende de los tipos de datos de los argumentos.
Al concatenar dos tipos de datos diferentes, Oracle Database devuelve el tipo de datos que da como resultado una conversión sin pérdidas. Por lo tanto, si uno de los argumentos es un LOB, el valor devuelto es un LOB. Si uno de los argumentos es un tipo de datos nacional, el valor devuelto es un tipo de datos nacional.
Ejemplos:
CONCAT
(CLOB
,NCLOB
) devuelveNCLOB
CONCAT
(NCLOB
,NCHAR
) devuelveNCLOB
CONCAT
(NCLOB
,CHAR
) devuelveNCLOB
CONCAT
(NCHAR
,CLOB
) devuelveNCLOB