SQLite | SQLite関数 | BLOB型の値を16進数に変換する(hex関数)

hex関数を使用すると、BLOB型の値を16進数に変換できます。ここでは、hex関数の使い方について説明します。

hex関数の使い方

hex関数は、BLOB型の値を16進数で表すために使用します。構文は次のとおりです。

hex(BLOB型の値)

引数に指定した値はBLOB型として扱われ、その値を16進数に変換した結果が返されます。

BLOB型の値はバイナリデータです。たとえば、バイナリデータ6Dを文字として表示すると、文字コード6Dに対応するmが表示されます。hex関数を使用すると、このバイナリデータを文字列6Dに変換して返します。

実際に、randomblob関数で生成したBLOB型の値をhex関数で16進数に変換してみましょう。randomblob関数については、BLOB型の乱数値を生成する(randomblob関数)を参照してください。

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> 

SELECT文を実行するたびに、生成されたBLOB型の値が16進数で表示されました。

引数に指定した値はBLOB型として扱われるため、文字列を指定すると、その文字列の各文字に対応する文字コードを16進数で取得できます。

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

指定した文字列の文字コードが16進数で表示されました。