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

Hàm COMPOSE () trong Oracle

Trong Cơ sở dữ liệu Oracle, COMPOSE() hàm trả về kết quả của việc áp dụng thành phần chuẩn Unicode, như được mô tả trong định nghĩa Chuẩn Unicode D117, cho đối số chuỗi của nó.

Nó đối lập với DECOMPOSE() chức năng.

Cú pháp

Cú pháp như sau:

COMPOSE(char)

Ở đâu char là một trong CHAR , VARCHAR2 , NCHAR hoặc NVARCHAR2 kiểu dữ liệu.

Ví dụ

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

SELECT 
    COMPOSE('a' || UNISTR('\0303'))
FROM DUAL;

Kết quả:

ã

Các ký tự không phải Unicode

Nếu bộ ký tự của đối số không phải là một trong các bộ ký tự Unicode, thì đối số được trả về không được sửa đổi.

Ví dụ:

SELECT COMPOSE( 'a' )
FROM DUAL;

Kết quả:

a

Đối số rỗng

Nếu đối số là null , kết quả là null :

SET NULL 'null';
SELECT COMPOSE(null)
FROM DUAL;

Kết quả:

null

Theo mặc định, SQLcl và SQL * Plus trả về một khoảng trống bất cứ khi nào giá trị 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 hợp lệ

Gọi COMPOSE() mà không có bất kỳ đối số nào dẫn đến lỗi:

SELECT COMPOSE()
FROM DUAL;

Kết quả:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

Và việc chuyển quá nhiều đối số cũng dẫn đến lỗi:

SELECT COMPOSE('a', 'b')
FROM DUAL;

Kết quả:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có cách nào để lấy số hàng trong Mysql giống như rownum trong oracle không

  2. ORA-06502:PL / SQL:lỗi số hoặc giá trị:bộ đệm chuỗi ký tự quá nhỏ

  3. Giới thiệu về con trỏ tham chiếu PL / SQL trong cơ sở dữ liệu Oracle

  4. Tài liệu Oracle

  5. Cách chuyển đổi hàng thành cột trong bảng Oracle