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

Hàm HEXTORAW () trong Oracle

Trong Cơ sở dữ liệu Oracle, HEXTORAW() hàm chuyển đổi hệ thập lục phân thành giá trị thô.

Cú pháp

Cú pháp như sau:

HEXTORAW(char)

Ở đâu char có thể là bất kỳ CHAR nào , VARCHAR2 , NCHAR hoặc NVARCHAR2 kiểu dữ liệu.

Ví dụ

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

SELECT HEXTORAW('74a5cfe') FROM DUAL;

Kết quả:

074A5CFE

Chúng ta có thể sử dụng DUMP() hàm để tìm ra kiểu dữ liệu của giá trị trả về:

SELECT DUMP(HEXTORAW('74a5cfe')) FROM DUAL;

Kết quả:

Typ=23 Len=4: 7,74,92,254

Typ=23 cho chúng tôi biết rằng giá trị trả về thuộc loại 23, là ID loại cho RAW .

Nói rõ hơn, đây là một ví dụ so sánh chuỗi thập lục phân và giá trị thô:

SELECT 
    DUMP('123') AS "r1",
    DUMP(HEXTORAW('123')) AS "r2"
FROM DUAL;

Kết quả:

                       r1                    r2 
_________________________ _____________________ 
Typ=96 Len=3: 49,50,51    Typ=23 Len=2: 1,35   

Giá trị thập lục phân thuộc loại 96, là ID loại cho CHARNCHAR .

Các ký tự không phải Hex

Việc chuyển một giá trị không phải là giá trị thập lục phân dẫn đến lỗi.

Ví dụ:

SELECT HEXTORAW('z') FROM DUAL;

Kết quả:

Error report -
ORA-01465: invalid hex number

Đối số rỗng

Nếu đối số là null , kết quả là null :

SET NULL 'null';
SELECT HEXTORAW(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 HEXTORAW() mà không có bất kỳ đối số nào dẫn đến lỗi:

SELECT HEXTORAW()
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 HEXTORAW('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. Oracle - Tôi đang sử dụng tệp TNS Names nào?

  2. Hàm MONTHS_BETWEEN () trong Oracle

  3. Cách trả lại danh sách các lãnh thổ được hỗ trợ trong Oracle

  4. Sửa lỗi “ORA-01789:khối truy vấn có số cột kết quả không chính xác”

  5. Oracle ODP.net Trình điều khiển được quản lý và Không được quản lý