Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Funkcja CONCAT() w Oracle

W Oracle CONCAT() funkcja wykonuje konkatenację ciągów na swoich argumentach. Zwraca ciąg, który wynika z połączenia jego argumentów.

Konkatenacja to operacja łączenia wielu ciągów od końca do końca.

Składnia

Składnia wygląda tak:

CONCAT(char1, char2)

Gdzie oba argumenty mogą być dowolnymi typami danych CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB lub NCLOB .

Przykład

Oto prosty przykład do zademonstrowania:

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

Wynik:

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

Wartości puste

Łączenie ciągu z null zwraca ciąg:

SET NULL 'null';

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

Wynik:

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

Ale jeśli oba argumenty są null , wynik to null :

SET NULL 'null';

SELECT CONCAT(null, null)
FROM DUAL;

Wynik:

   CONCAT(NULL,NULL) 
____________________ 
null                

Domyślnie SQLcl i SQL*Plus zwracają spację, gdy null występuje w wyniku polecenia SQL SELECT oświadczenie.

Możesz jednak użyć SET NULL aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null należy zwrócić.

Nieprawidłowa liczba argumentów

Wywołanie CONCAT() bez przekazywania żadnych argumentów zwraca błąd:

SELECT CONCAT()
FROM DUAL;

Wynik:

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:

A przekazanie niewłaściwej liczby argumentów skutkuje błędem:

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

Wynik:

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:

Zestaw znaków i typ danych

Wynikowy ciąg ma taki sam zestaw znaków jak pierwszy argument, jednak jego typ danych zależy od typów danych argumentów.

Podczas łączenia dwóch różnych typów danych Oracle Database zwraca typ danych, który powoduje bezstratną konwersję. Dlatego jeśli jednym z argumentów jest LOB, to zwracaną wartością jest LOB. Jeśli jeden z argumentów jest krajowym typem danych, zwracana wartość jest krajowym typem danych.

Przykłady:

  • CONCAT (CLOB , NCLOB ) zwraca NCLOB
  • CONCAT (NCLOB , NCHAR ) zwraca NCLOB
  • CONCAT (NCLOB , CHAR ) zwraca NCLOB
  • CONCAT (NCHAR , CLOB ) zwraca 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. Rekurencja w zapytaniu do bazy danych w celu uzyskania wyniku hierarchicznego za pomocą Hibernate - Java

  2. Dlaczego DECODE Oracle daje mi inną wartość niż NVL?

  3. Używanie funkcji Max() do wybierania wartości grup

  4. automatyzacja wyrocznia skryptu wycofywania

  5. ORACLE Jak używać szpuli z dynamiczną lokalizacją szpuli