Trong Cơ sở dữ liệu Oracle, ROWIDTONCHAR()
function chuyển đổi ROWID
giá trị thành NVARCHAR2
kiểu dữ liệu
Nó tương tự với ROWIDTOCHAR()
, ngoại trừ ROWIDTOCHAR()
chuyển đổi ROWID
giá trị thành VARCHAR2
kiểu dữ liệu.
Cú pháp
Cú pháp như sau:
ROWIDTONCHAR(rowid)
Ví dụ
Đây là một ví dụ:
SELECT ROWIDTONCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Kết quả:
AAATiBAAMAAAAIDAAE
Kết quả của việc chuyển đổi luôn nằm trong bộ ký tự quốc gia và dài 18 ký tự.
Và đây là phần kết quả khi so sánh với CHARTOROWID()
hàm (trả về ROWID
giá trị từ dữ liệu ký tự):
SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTONCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTONCHAR"
FROM DUAL;
Kết quả:
CHARTOROWID ROWIDTONCHAR ____________________________ __________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=36: ^@,A,^@,A
ID loại 69
nghĩa là nó thuộc về ROWID
kiểu dữ liệu và ID loại 1
có nghĩa là nó là VARCHAR2
hoặc NVARCHARCHAR2
.
Một ví dụ về cơ sở dữ liệu
Dưới đây là một ví dụ trả về một hàng trong bảng cơ sở dữ liệu, dựa trên một ROWID
nhất định :
SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTONCHAR(ROWID) LIKE '%KzABa';
Kết quả:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
Đối số rỗng
Nếu đối số là null
, kết quả là null
:
SET NULL 'null';
SELECT ROWIDTONCHAR(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 ROWIDTONCHAR()
mà không có bất kỳ đối số nào dẫn đến lỗi:
SELECT ROWIDTONCHAR()
FROM DUAL;
Kết quả:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
Và việc chuyển quá nhiều đối số cũng dẫn đến lỗi:
SELECT ROWIDTONCHAR('a', 'b')
FROM DUAL;
Kết quả:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"