Trong Oracle, NCHR()
hàm trả về ký tự có mã nhị phân tương đương với đối số của nó trong bộ ký tự quốc gia.
Nó tương đương với việc sử dụng CHR()
chức năng với USING
NCHAR_CS
đối số.
Cú pháp
Cú pháp như sau:
NCHR(number)
Ở đâu number
là một NUMBER
giá trị hoặc bất kỳ giá trị nào có thể được chuyển đổi hoàn toàn thành NUMBER
.
Giá trị trả về luôn là NVARCHAR2
.
Ví dụ
Dưới đây là một ví dụ đơn giản để chứng minh:
SELECT NCHR(257)
FROM DUAL;
Kết quả:
NCHR(257) ____________ ā
Ở đây tôi đã cung cấp một số và NCHR()
đã trả về ký tự tương ứng trong bộ ký tự quốc gia. Trong trường hợp này, số nguyên 257
ánh xạ tới ký tự ā
.
Chúng ta có thể đạt được kết quả tương tự với CHR()
chức năng khi sử dụng USING
NCHAR_CS
đối số:
SELECT CHR (257 USING NCHAR_CS)
FROM DUAL;
Kết quả:
CHR(257USINGNCHAR_CS) ________________________ ā
Giá trị rỗng
Chuyển null
trả về null
:
SET NULL 'null';
SELECT NCHR(null)
FROM DUAL;
Kết quả:
NCHR(NULL) _____________ 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.
Số lượng đối số không chính xác
Gọi NCHR()
mà không chuyển bất kỳ đối số nào sẽ trả về lỗi:
SELECT NCHR()
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT NCHR() 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 sai số đối số dẫn đến lỗi:
SELECT NCHR(1, 2, 3)
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT NCHR(1, 2, 3) FROM DUAL Error at Command Line : 1 Column : 19 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: