RAWTONHEX() Function in Oracle

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

It’s similar to the RAWTOHEX() function, except that its value is always returned in the national character set.

Syntax

The syntax goes like this:

RAWTONHEX(raw)

Example

Here’s an example:

SELECT 
    RAWTONHEX(HEXTORAW('f9')) AS "Result",
    DUMP(RAWTONHEX(HEXTORAW('f9'))) AS "Dump"
FROM DUAL;

Result:

   Result                      Dump 
_________ _________________________ 
F9        Typ=1 Len=4: 0,70,0,57   

Here, I used the HEXTORAW() function to convert a hexadecimal string to RAW, then used RAWTONHEX() to convert it back. The output of the DUMP() function shows that the returned data type is of type 1.

Null Argument

If the argument is null, the result is null:

SET NULL 'null';
SELECT RAWTONHEX(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 RAWTONHEX() without any arguments results in an error:

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

Result:

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