Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Hàm CONCAT () trong Oracle

Trong Oracle, CONCAT() hàm thực hiện nối chuỗi trên các đối số của nó. Nó trả về chuỗi là kết quả của việc nối các đối số của nó.

Nối là hoạt động nối nhiều chuỗi từ đầu đến cuối.

Cú pháp

Cú pháp như sau:

CONCAT(char1, char2)

Trong đó cả hai đối số có thể là bất kỳ kiểu dữ liệu nào CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB hoặc NCLOB .

Ví dụ

Dưới đây là một ví dụ đơn giản để chứng minh:

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

Kết quả:

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

Giá trị rỗng

Nối một chuỗi với null trả về chuỗi:

SET NULL 'null';

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

Kết quả:

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

Nhưng nếu cả hai đối số đều null , kết quả là null :

SET NULL 'null';

SELECT CONCAT(null, null)
FROM DUAL;

Kết quả:

   CONCAT(NULL,NULL) 
____________________ 
null                

Theo mặc định, SQLcl và SQL * Plus trả về một khoảng trống bất cứ khi nào null xảy ra do một SELECT trong SQL tuyên bố.

Tuy nhiên, bạn có thể sử dụng SET NULL để chỉ định một chuỗi khác được trả về. Ở đây tôi đã chỉ định rằng chuỗi null nên được trả lại.

Số lượng đối số không chính xác

Đang gọi CONCAT() mà không chuyển bất kỳ đối số nào sẽ trả về lỗi:

SELECT CONCAT()
FROM DUAL;

Kết quả:

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:

Và việc chuyển sai số đối số dẫn đến lỗi:

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

Kết quả:

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:

Bộ ký tự &kiểu dữ liệu

Chuỗi kết quả có cùng bộ ký tự với đối số đầu tiên, tuy nhiên kiểu dữ liệu của nó phụ thuộc vào kiểu dữ liệu của đối số.

Khi nối hai kiểu dữ liệu khác nhau, Cơ sở dữ liệu Oracle trả về kiểu dữ liệu dẫn đến chuyển đổi không mất dữ liệu. Do đó, nếu một trong các đối số là LOB, thì giá trị trả về là LOB. Nếu một trong các đối số là kiểu dữ liệu quốc gia thì giá trị trả về là kiểu dữ liệu quốc gia.

Ví dụ:

  • CONCAT (CLOB , NCLOB ) trả về NCLOB
  • CONCAT (NCLOB , NCHAR ) trả về NCLOB
  • CONCAT (NCLOB , CHAR ) trả về NCLOB
  • CONCAT (NCHAR , CLOB ) trả về 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. hiển thị văn bản tùy chỉnh sql từ kết quả cột bảng

  2. 2 cách để xóa các hàng trùng lặp trong Oracle

  3. Oracle:Hiệu suất Thu thập hàng loạt

  4. Chọn một mẫu kết quả ngẫu nhiên từ kết quả truy vấn

  5. Cách thay đổi định dạng ngày trong phiên Oracle của bạn