Trong Cơ sở dữ liệu Oracle, NLS_COLLATION_ID()
hàm trả về ID của một đối chiếu nhất định. Bạn chuyển tên đối chiếu khi gọi hàm và nó trả về ID đối chiếu.
Cú pháp
Cú pháp như sau:
NLS_COLLATION_ID(expr)
Ở đâu expr
là tên đối chiếu, thuộc loại VARCHAR2
.
Ví dụ
Đây là một ví dụ cơ bản:
SELECT NLS_COLLATION_ID('XAZERBAIJANI')
FROM DUAL;
Kết quả:
70
Dưới đây là một số ví dụ khác:
SELECT
NLS_COLLATION_ID('UCA0620_THAI') AS "1",
NLS_COLLATION_ID('UCA0620_TSPANISH') AS "2",
NLS_COLLATION_ID('CANADIAN_M') AS "3",
NLS_COLLATION_ID('FRENCH_M') AS "4"
FROM DUAL;
Kết quả:
1 2 3 4 _________ _________ _______ _______ 208920 208917 4116 4112
Đối chiếu Không hợp lệ
Chuyển tên đối chiếu không hợp lệ dẫn đến null
:
SET NULL 'null';
SELECT NLS_COLLATION_ID('Oops!')
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 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.
Đối số rỗng
Chuyển null
trả về null
:
SET NULL 'null';
SELECT NLS_COLLATION_ID(null)
FROM DUAL;
Kết quả:
null
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 NLS_COLLATION_ID()
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT NLS_COLLATION_ID() 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 NLS_COLLATION_ID('JAPANESE_M', 'THAI_M')
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT NLS_COLLATION_ID('JAPANESE_M', 'THAI_M') 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: