Oracle
 sql >> база данни >  >> RDS >> Oracle

CONCAT() Функция в Oracle

В 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 ) връща NCLOB
  • CONCAT (NCLOB , NCHAR ) връща NCLOB
  • CONCAT (NCLOB , CHAR ) връща NCLOB
  • CONCAT (NCHAR , CLOB ) връща NCLOB

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конвертирате десетичен в шестнадесетичен с помощта на TO_CHAR() в Oracle

  2. oracle sql:актуализиране, ако съществува, друго вмъкване

  3. Как да създадете временна таблица в база данни на Oracle?

  4. Как да изберете топ 1 и подредени по дата в Oracle SQL?

  5. Команди за архивиране на RMAN