RAWTOHEX() Function in Oracle

In Oracle Database, the RAWTOHEX() function converts a raw value to hexadecimal.

Syntax

The syntax goes like this:

RAWTOHEX(raw)

Where raw can be any scalar data type other than LONG, LONG RAW, CLOB, NCLOB, BLOB, or BFILE.

If the argument is of a data type other than RAW, then the function converts the argument into a RAW value with the same number of data bytes.

Example

Here’s an example:

SELECT RAWTOHEX(HEXTORAW('374a5cfe')) FROM DUAL;

Result:

374A5CFE

Here, I used the HEXTORAW() function to convert the hexadecimal string to RAW, then used RAWTOHEX() to convert it back.

Null Argument

If the argument is null, the result is null:

SET NULL 'null';
SELECT RAWTOHEX(null)
FROM DUAL;

Result:

null

By default, SQLcl and SQL*Plus return a blank space whenever a null value occurs as a result of a SQL SELECT statement.

However, you can use SET NULL to specify a different string to be returned. Here I specified that the string null should be returned.

Invalid Argument Count

Calling RAWTOHEX() without any arguments results in an error:

SELECT RAWTOHEX()
FROM DUAL;

Result:

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

And passing too many arguments also results in an error:

SELECT RAWTOHEX('a', 'b')
FROM DUAL;

Result:

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