Trong Cơ sở dữ liệu Oracle, NLS_CHARSET_NAME()
hàm trả về tên bộ ký tự của một bộ ký tự nhất định, dựa trên ID của nó. Bạn chuyển ID bộ ký tự làm đối số và hàm trả về tên của nó.
Cú pháp
Cú pháp như sau:
NLS_CHARSET_NAME(number)
Vị trí number
là ID bộ ký tự mà bạn muốn trả lại tên.
Ví dụ
Đây là một ví dụ cơ bản:
SELECT NLS_CHARSET_NAME(1)
FROM DUAL;
Kết quả:
US7ASCII
Đây là nó với một ID bộ ký tự khác:
SELECT NLS_CHARSET_NAME(871)
FROM DUAL;
Kết quả:
UTF8
Đối số rỗng
Nếu đối số là null
, kết quả là null
:
SET NULL 'null';
SELECT NLS_CHARSET_NAME(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 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.
ID bộ ký tự không hợp lệ
Chuyển ID tập hợp ký tự không hợp lệ dẫn đến null
:
SET NULL 'null';
SELECT NLS_CHARSET_NAME(19999)
FROM DUAL;
Kết quả:
null
Tuy nhiên, việc chuyển sai kiểu dữ liệu sẽ trả về lỗi:
SELECT NLS_CHARSET_NAME('oops')
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT NLS_CHARSET_NAME('oops') FROM DUAL Error report - ORA-01722: invalid number
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_CHARSET_NAME()
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT NLS_CHARSET_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:
Nhưng việc chuyển nhiều ID tập hợp ký tự dẫn đến tên của ID đầu tiên được trả về:
SELECT NLS_CHARSET_NAME(871, 1)
FROM DUAL;
Kết quả:
UTF8