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) returnerarNCLOBCONCAT(NCLOB,NCHAR) returnerarNCLOBCONCAT(NCLOB,CHAR) returnerarNCLOBCONCAT(NCHAR,CLOB) returnerarNCLOB