Trong Cơ sở dữ liệu Oracle, NLS_COLLATION_NAME()
hàm trả về tên của một đối chiếu nhất định, dựa trên ID của nó. Bạn chuyển ID đối chiếu khi gọi hàm và nó trả về tên đối chiếu.
Cú pháp
Cú pháp như sau:
NLS_COLLATION_NAME(expr [, flag ])
Ở đâu expr
là ID đối chiếu của loại NUMBER
.
flag
đối số là đối số tùy chọn chỉ áp dụng cho các đối chiếu Unicode Collation Algorithm (UCA). Nó xác định xem hàm nên trả về dạng ngắn hay dạng dài của tên đối chiếu.
flag
đối số có thể là một trong những điều sau:
Flag | Mô tả |
---|---|
'S' hoặc 's' | Trả về dạng ngắn của tên đối chiếu. |
'L' hoặc 'l' | Trả về dạng dài của tên đối chiếu. |
Giá trị mặc định cho cờ này là 'L'
.
Ví dụ
Đây là một ví dụ cơ bản:
SELECT NLS_COLLATION_NAME(70)
FROM DUAL;
Kết quả:
XAZERBAIJANI
Dưới đây là một số ví dụ khác:
SELECT
NLS_COLLATION_NAME(4112) AS "1",
NLS_COLLATION_NAME(4116) AS "2"
FROM DUAL;
Kết quả:
1 2 ___________ _____________ FRENCH_M CANADIAN_M
Cờ dạng dài / ngắn
Như đã đề cập, chúng ta có thể chuyển một cờ tùy chọn để xác định xem trả về dạng ngắn hay dạng dài của tên đối chiếu.
SELECT
NLS_COLLATION_NAME(208920, 'L') AS "Long",
NLS_COLLATION_NAME(208920, 'S') AS "Short"
FROM DUAL;
Kết quả:
Long Short __________________________________________ _______________ UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN UCA0620_THAI
Giá trị mặc định cho cờ này là 'L'
. Vì vậy, nếu chúng ta bỏ qua cờ, biểu mẫu dài sẽ được trả về:
SELECT
NLS_COLLATION_NAME(208920) AS "Default"
FROM DUAL;
Kết quả:
Default __________________________________________ UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN
Tuy nhiên, cờ này chỉ áp dụng cho các đối chiếu của Thuật toán đối chiếu Unicode (UCA).
Nếu chúng tôi áp dụng cờ cho đối chiếu không phải UCA, chúng tôi không thấy sự khác biệt:
SELECT
NLS_COLLATION_NAME(4112, 'L') AS "1",
NLS_COLLATION_NAME(4112, 'S') AS "2"
FROM DUAL;
Kết quả:
1 2 ___________ ___________ FRENCH_M FRENCH_M
Đố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_NAME(4113)
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_NAME(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_NAME()
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT NLS_COLLATION_NAME() 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 quá nhiều đối số cũng dẫn đến lỗi:
SELECT NLS_COLLATION_NAME(4112, 'S', 'L')
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT NLS_COLLATION_NAME(4112, 'S', 'L') FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: