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

Hàm COLLATION () trong Oracle

Trong Cơ sở dữ liệu Oracle, COLLATION() hàm trả về tên của đối chiếu dẫn xuất cho đối số của nó.

Cú pháp

Cú pháp như sau:

COLLATION(expr)

Ở đâu expr phải đánh giá thành một chuỗi ký tự thuộc loại CHAR , VARCHAR2 , LONG , NCHAR hoặc NVARCHAR2 .

Ví dụ

Đây là một ví dụ cơ bản:

SELECT COLLATION('Boat')
FROM DUAL;

Kết quả:

USING_NLS_COMP

Ví dụ với COLLATE Mệnh đề

Đây là những gì sẽ xảy ra khi chúng tôi sử dụng COLLATE mệnh đề chỉ định rõ ràng đối chiếu:

SELECT COLLATION('Boat' COLLATE LATIN_AI) 
FROM DUAL;

Kết quả:

LATIN_AI

Cân nhắc khi sử dụng NLS_SORT

COLLATION() hàm chỉ trả về đối chiếu giới hạn dữ liệu chứ không phải đối chiếu động được đặt bởi NLS_SORT tham số.

Ví dụ:

SELECT COLLATION('Boat' COLLATE USING_NLS_SORT) 
FROM DUAL;

Kết quả:

USING_NLS_SORT

Bạn có thể sử dụng SYS_CONTEXT() hàm trả về giá trị của NLS_SORT tham số:

SELECT SYS_CONTEXT('USERENV','NLS_SORT')
FROM DUAL;

Kết quả:

BINARY

Tuy nhiên, bất kỳ hậu tố nào như _CI , _AI_CS được trả lại:

SELECT 
    COLLATION('Boat' COLLATE USING_NLS_SORT_CI) AS "_CI",
    COLLATION('Boat' COLLATE USING_NLS_SORT_CS) AS "_CS",
    COLLATION('Boat' COLLATE USING_NLS_SORT_AI) AS "_AI"
FROM DUAL;

Kết quả:

                 _CI                  _CS                  _AI 
____________________ ____________________ ____________________ 
USING_NLS_SORT_CI    USING_NLS_SORT_CS    USING_NLS_SORT_AI    

Đối số rỗng

Đối chiếu được trả về, ngay cả khi chuyển null :

SELECT COLLATION(null)
FROM DUAL;

Kết quả:

USING_NLS_COMP

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

Việc gọi hàm mà không chuyển bất kỳ đối số nào dẫn đến lỗi:

SELECT COLLATION()
FROM DUAL;

Kết quả:

Error starting at line : 1 in command -
SELECT COLLATION()
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:

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

SELECT COLLATION('Boat', 'Dang')
FROM DUAL;

Kết quả:

Error starting at line : 1 in command -
SELECT COLLATION('Boat', 'Dang')
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:

  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ách gói cx_oracle với Pyinstaller

  2. Oracle - ORA-01489:kết quả của việc nối chuỗi quá dài

  3. Hàm SYSDATE trong Oracle

  4. Tính vui nhộn của truy vấn con Oracle

  5. Xuất kết quả truy vấn sang tệp XML khi sử dụng SQLcl (Oracle)