В Oracle, CONCAT() функцията извършва конкатенация на низове на своите аргументи. Връща низа, който е резултат от конкатенирането на неговите аргументи.
Конкатенацията е операция на свързване на множество низове от край до край.
Синтаксис
Синтаксисът е така:
CONCAT(char1, char2)
Когато и двата аргумента могат да бъдат всеки от типовете данни CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB или NCLOB .
Пример
Ето един прост пример за демонстрация:
SELECT CONCAT('Ponzi', 'Invest')
FROM DUAL; Резултат:
CONCAT('PONZI','INVEST')
___________________________
PonziInvest Нулеви стойности
Конкатенация на низ с null връща низа:
SET NULL 'null';
SELECT
CONCAT('Ponzi', null),
CONCAT(null, 'Invest')
FROM DUAL; Резултат:
CONCAT('PONZI',NULL) CONCAT(NULL,'INVEST')
_______________________ ________________________
Ponzi Invest
Но ако и двата аргумента са null , резултатът е null :
SET NULL 'null';
SELECT CONCAT(null, null)
FROM DUAL; Резултат:
CONCAT(NULL,NULL) ____________________ null
По подразбиране SQLcl и SQL*Plus връщат празно пространство всеки път, когато null възниква в резултат на SQL SELECT изявление.
Можете обаче да използвате SET NULL за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null трябва да бъдат върнати.
Неправилен брой аргументи
Извикване на CONCAT() без подаване на аргументи връща грешка:
SELECT CONCAT()
FROM DUAL; Резултат:
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:
И предаването на грешен брой аргументи води до грешка:
SELECT CONCAT('Gosh', 'Dang', 'Investments')
FROM DUAL; Резултат:
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: Набор от знаци и тип данни
Полученият низ е в същия набор от знаци като първия аргумент, но неговият тип данни зависи от типовете данни на аргументите.
Когато конкатенира два различни типа данни, Oracle Database връща типа данни, който води до преобразуване без загуби. Следователно, ако един от аргументите е LOB, тогава върнатата стойност е LOB. Ако един от аргументите е национален тип данни, тогава върнатата стойност е национален тип данни.
Примери:
CONCAT(CLOB,NCLOB) връщаNCLOBCONCAT(NCLOB,NCHAR) връщаNCLOBCONCAT(NCLOB,CHAR) връщаNCLOBCONCAT(NCHAR,CLOB) връщаNCLOB