sql >> Database teknologi >  >> RDS >> Oracle

CONCAT() Funktion i Oracle

I Oracle er CONCAT() funktion udfører en strengsammenkædning på sine argumenter. Det returnerer den streng, der er resultatet af sammenkædning af dens argumenter.

Sammenkædning er operationen med at forbinde flere strenge ende-til-ende.

Syntaks

Syntaksen ser sådan ud:

CONCAT(char1, char2)

Hvor begge argumenter kan være en hvilken som helst af datatyperne CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB eller NCLOB .

Eksempel

Her er et simpelt eksempel til at demonstrere:

SELECT CONCAT('Ponzi', 'Invest')
FROM DUAL;

Resultat:

   CONCAT('PONZI','INVEST') 
___________________________ 
PonziInvest                

Nul-værdier

Sammenkædning af en streng med null returnerer strengen:

SET NULL 'null';

SELECT 
    CONCAT('Ponzi', null),
    CONCAT(null, 'Invest')
FROM DUAL;

Resultat:

   CONCAT('PONZI',NULL)    CONCAT(NULL,'INVEST') 
_______________________ ________________________ 
Ponzi                   Invest                   

Men hvis begge argumenter er null , resultatet er null :

SET NULL 'null';

SELECT CONCAT(null, null)
FROM DUAL;

Resultat:

   CONCAT(NULL,NULL) 
____________________ 
null                

Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når null opstår som et resultat af en SQL SELECT udmelding.

Du kan dog bruge SET NULL for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null skal returneres.

Forkert antal argumenter

Kalder CONCAT() uden at sende nogen argumenter returnerer en fejl:

SELECT CONCAT()
FROM DUAL;

Resultat:

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:

Og at sende det forkerte antal argumenter resulterer i en fejl:

SELECT CONCAT('Gosh', 'Dang', 'Investments')
FROM DUAL;

Resultat:

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:

Tegnsæt og datatype

Den resulterende streng er i samme tegnsæt som det første argument, men dens datatype afhænger af argumenternes datatyper.

Når du sammenkæder to forskellige datatyper, returnerer Oracle Database den datatype, der resulterer i en tabsfri konvertering. Derfor, hvis et af argumenterne er en LOB, så er den returnerede værdi en LOB. Hvis et af argumenterne er en national datatype, så er den returnerede værdi en national datatype.

Eksempler:

  • CONCAT (CLOB , NCLOB ) returnerer NCLOB
  • CONCAT (NCLOB , NCHAR ) returnerer NCLOB
  • CONCAT (NCLOB , CHAR ) returnerer NCLOB
  • CONCAT (NCHAR , CLOB ) returnerer NCLOB

  1. At analysere døden med tusinde reducerer arbejdsbyrden

  2. JDBC batch operationsforståelse

  3. Sådan finder du langsomste forespørgsler

  4. MS-Access baseklasse og afledte objekter