Trong Cơ sở dữ liệu Oracle, ASCIISTR()
hàm trả về phiên bản ASCII của chuỗi đã cho trong bộ ký tự cơ sở dữ liệu.
Cú pháp
Cú pháp như sau:
ASCIISTR(char)
Trong đó char
là một chuỗi hoặc một biểu thức phân giải thành một chuỗi, trong bất kỳ bộ ký tự nào.
Các ký tự không phải ASCII được chuyển đổi thành dạng \xxxx
, trong đó xxxx
đại diện cho một đơn vị mã UTF-16.
Ví dụ
Đây là một ví dụ:
SELECT ASCIISTR('Fish')
FROM DUAL;
Kết quả:
Fish
Trong trường hợp này, kết quả giống với đầu vào vì đầu vào đã sử dụng các ký tự ASCII.
Đây là một cái khác sử dụng các ký tự không phải ASCII:
SELECT ASCIISTR('ปลา')
FROM DUAL;
Kết quả:
\0E1B\0E25\0E32
Tại đây, chúng tôi nhận được từng ký tự trong số ba ký tự được trả về trong các ký tự ASCII tương đương của chúng.
Trong trường hợp này, đầu vào ( ปลา
) là từ tiếng Thái có nghĩa là "cá". Điều này có thể được phát âm là "Plā".
Đây là những gì sẽ xảy ra khi chúng ta vượt qua Plā
tới ASCIISTR()
chức năng:
SELECT ASCIISTR('Plā')
FROM DUAL;
Kết quả:
Pl\0101
Trong trường hợp này, hai ký tự đầu tiên mà chúng tôi đã truyền là ký tự ASCII, nhưng ký tự thứ ba không phải là ASCII. Do đó, hàm trả về hai ký tự đầu tiên không thay đổi và ký tự thứ ba được chuyển đổi thành ASCII.
Đây là một cái khác vượt qua น้ำ
, là từ tiếng Thái có nghĩa là "nước":
SELECT ASCIISTR('น้ำ')
FROM DUAL;
Kết quả:
\0E19\0E49\0E33
Giá trị rỗng
Nếu đối số là null
, kết quả là null
:
SET NULL 'null';
SELECT ASCIISTR(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 giá trị 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 hợp lệ
Gọi ASCIISTR()
mà không có bất kỳ đối số nào dẫn đến lỗi:
SELECT ASCIISTR()
FROM DUAL;
Kết quả:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"