sql >> Databasteknik >  >> RDS >> Oracle

CONCAT() Funktion i Oracle

I Oracle, CONCAT() funktion utför en strängsammansättning på sina argument. Den returnerar strängen som resulterar från sammanlänkning av dess argument.

Sammankoppling är operationen att sammanfoga flera strängar ände till ände.

Syntax

Syntaxen ser ut så här:

CONCAT(char1, char2)

Där båda argumenten kan vara vilken som helst av datatyperna CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB , eller NCLOB .

Exempel

Här är ett enkelt exempel att visa:

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

Resultat:

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

Nullvärden

Sammanfoga en sträng med null returnerar strängen:

SET NULL 'null';

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

Resultat:

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

Men om båda argumenten är null , resultatet är null :

SET NULL 'null';

SELECT CONCAT(null, null)
FROM DUAL;

Resultat:

   CONCAT(NULL,NULL) 
____________________ 
null                

Som standard returnerar SQLcl och SQL*Plus ett tomt utrymme när null uppstår som ett resultat av en SQL SELECT påstående.

Du kan dock använda SET NULL för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null bör returneras.

Inkorrekt antal argument

Anropar CONCAT() utan att skicka några argument returnerar ett fel:

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:

Och att skicka fel antal argument resulterar i ett fel:

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:

Teckenuppsättning och datatyp

Den resulterande strängen har samma teckenuppsättning som det första argumentet, men dess datatyp beror på argumentens datatyper.

När två olika datatyper sammanfogas, returnerar Oracle Database den datatyp som resulterar i en förlustfri konvertering. Därför, om ett av argumenten är en LOB, är det returnerade värdet en LOB. Om ett av argumenten är en nationell datatyp så är det returnerade värdet en nationell datatyp.

Exempel:

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

  1. SQL-uppdatering översta radens fråga

  2. Primära nycklar i SQL Server

  3. Hur byter man namn på ett kolumnnamn i SQL?

  4. Hur installerar man PostgreSQL:s pg gem på Ubuntu?