sql >> Database >  >> RDS >> Oracle

CONCAT() Functie in Oracle

In Oracle, de CONCAT() functie voert een tekenreeksaaneenschakeling uit op zijn argumenten. Het geeft de string terug die het resultaat is van het aaneenschakelen van zijn argumenten.

Concatenatie is de bewerking waarbij meerdere strings end-to-end worden samengevoegd.

Syntaxis

De syntaxis gaat als volgt:

CONCAT(char1, char2)

Waarbij beide argumenten elk van de gegevenstypen CHAR . kunnen zijn , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB , of NCLOB .

Voorbeeld

Hier is een eenvoudig voorbeeld om te demonstreren:

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

Resultaat:

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

Null-waarden

Een string samenvoegen met null geeft de string terug:

SET NULL 'null';

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

Resultaat:

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

Maar als beide argumenten null zijn , het resultaat is null :

SET NULL 'null';

SELECT CONCAT(null, null)
FROM DUAL;

Resultaat:

   CONCAT(NULL,NULL) 
____________________ 
null                

Standaard retourneren SQLcl en SQL*Plus een spatie wanneer null treedt op als resultaat van een SQL SELECT uitspraak.

U kunt echter SET NULL . gebruiken om een ​​andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null moet worden geretourneerd.

Onjuist aantal argumenten

CONCAT() . aanroepen zonder het doorgeven van argumenten geeft een fout:

SELECT CONCAT()
FROM DUAL;

Resultaat:

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:

En het doorgeven van het verkeerde aantal argumenten resulteert in een fout:

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

Resultaat:

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:

Tekenset en gegevenstype

De resulterende string heeft dezelfde tekenset als het eerste argument, maar het datatype hangt af van het datatype van de argumenten.

Bij het aaneenschakelen van twee verschillende gegevenstypen, retourneert Oracle Database het gegevenstype dat resulteert in een conversie zonder verlies. Daarom, als een van de argumenten een LOB is, is de geretourneerde waarde een LOB. Als een van de argumenten een nationaal gegevenstype is, is de geretourneerde waarde een nationaal gegevenstype.

Voorbeelden:

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

  1. Nieuwe functie voor BYOC – Clusters onderbreken en hervatten

  2. Grote objecten mogen niet worden gebruikt in de modus voor automatisch vastleggen

  3. MOD() Functie in Oracle

  4. Forceer in Postgresql uniek op combinatie van twee kolommen