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進数で表示されました。