Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Hàm ROWIDTOCHAR () trong Oracle

Trong Cơ sở dữ liệu Oracle, ROWIDTOCHAR() hàm chuyển đổi ROWID giá trị thành VARCHAR2 kiểu dữ liệu.

Cú pháp

Cú pháp như sau:

ROWIDTOCHAR(rowid)

Ví dụ

Đây là một ví dụ:

SELECT ROWIDTOCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;

Kết quả:

AAATiBAAMAAAAIDAAE

Kết quả của chuyển đổi luôn 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(ROWIDTOCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTOCHAR"
FROM DUAL;

Kết quả:

                 CHARTOROWID              ROWIDTOCHAR 
____________________________ ________________________ 
Typ=69 Len=10: ^@,^A,8,81    Typ=1 Len=18: A,A,A,T   

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à 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 ROWIDTOCHAR(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 ROWIDTOCHAR(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ệ

Đang gọi ROWIDTOCHAR() mà không có bất kỳ đối số nào dẫn đến lỗi:

SELECT ROWIDTOCHAR()
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 ROWIDTOCHAR('a', 'b')
FROM DUAL;

Kết quả:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao trong SQL NULL không thể khớp với NULL?

  2. Làm cách nào để tính giá trị trung bình của một cột và sau đó đưa nó vào một truy vấn chọn trong oracle?

  3. ORA-03113:phần cuối của tệp trên kênh liên lạc

  4. Bất kỳ tác động hiệu suất nào trong Oracle khi sử dụng LIKE 'string' vs ='string'?

  5. Oracle Concurrent Manager - Trình phân tích CP cho E-Business Suite