BLOB型の値を16進表記に変換(hex関数)

hex 関数を使うと BLOB 型の値を 16 進表記に変換した値を取得することができます。ここでは SQLite における hex 関数の使い方について解説します。

(Last modified: )

hex関数の使い方

hex 関数は BLOB 型の値を 16 進数表記するために使用します。書式は次の通りです。

hex(BLOB型の値)

引数に指定した値は BLOB 型の値として処理され、 BLOB 型の値を 16 進数表記に変換した結果を返します。

BLOB 型の値はバイナリデータです。例えばバイナリデータの 6D という値を表示しようとすると、文字コード 6D に対応する文字の 'm' という文字を画面に表示してしまいます。 hex 関数を使うとバイナリデータの 6D を '6D' という文字列に変換して返してくれます。

-- --

それでは hex 関数を使って randomblob 関数によって生成された BLOB 型の値を 16 進数表記にした結果を取得します。( randomblob 関数については「BLOB型の値の乱数を生成(randomblob関数)」をご覧下さい)。

select hex(randomblob(2));

hex関数の使い方(1)

SELECT 文を実行するたびに生成された BLOB 型の値を 16 進表記にして取得することができました。

また引数に指定した値を BLOB 型の値として処理するため、例えば文字列を指定すると文字列の文字に対応した文字コードを 16 進表記で取得できます。

select hex('Aa');
select hex('ABC');

hex関数の使い方(2)

引数に指定した文字列の文字コードを 16 進表記にして取得することができました。

-- --

hex 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。