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