SQLite | SQLite Functions | Converting a BLOB Value to Hexadecimal (hex Function)

The hex function converts a BLOB value to its hexadecimal representation. This article explains how to use the function.

Using the hex Function

The hex function represents a BLOB value in hexadecimal. Its syntax is as follows.

hex(BLOB_value)

The argument is treated as a BLOB value, and the function returns its hexadecimal representation.

A BLOB contains binary data. For example, displaying the binary value 6D as a character produces m, which has the character code 6D. The hex function instead returns that binary data as the string 6D.

As an example, use the hex function to represent BLOB values generated by the randomblob function in hexadecimal. For details about randomblob, see Generating a Random BLOB Value (randomblob Function).

select hex(randomblob(2));
sqlite> select hex(randomblob(2));
hex(randomblob(2))
------------------
7F64              
sqlite> select hex(randomblob(2));
hex(randomblob(2))
------------------
DB6D              
sqlite> select hex(randomblob(2));
hex(randomblob(2))
------------------
2176              
sqlite> select hex(randomblob(2));
hex(randomblob(2))
------------------
74D5              
sqlite> 

Each execution of the SELECT statement displayed the generated BLOB value in hexadecimal.

Because the argument is treated as a BLOB, passing a string returns the character codes corresponding to the string’s characters in hexadecimal.

select hex('Aa');
select hex('ABC');
sqlite> select hex('Aa');
hex('Aa')
----------
4161      
sqlite> select hex('ABC');
hex('ABC')
-----------
414243     
sqlite> 

The character codes for the supplied strings are displayed in hexadecimal.