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

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

(2022 年 04 月 07 日公開 / 2022 年 04 月 07 日更新)

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

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。