カテゴリ:

文字列とバイナリ関数 (エンコード/デコード)

HEX_DECODE_STRING

16進数でエンコードされた文字列を文字列にデコードします。

こちらもご参照ください。

TRY_HEX_DECODE_STRING

構文

HEX_DECODE_STRING(<input>)
Copy

引数

input

16進数でエンコードされた文字列の式です。通常、入力は HEX_ENCODE の呼び出しによって作成されます。

戻り値

返される値は文字列(VARCHAR)です。

以下は、16進数のシーケンスに対応するワードにデコードします。

SELECT HEX_DECODE_STRING('536E6F77666C616B65');

-----------------------------------------+
 HEX_DECODE_STRING('536E6F77666C616B65') |
-----------------------------------------+
 Snowflake                               |
-----------------------------------------+
Copy

16進数字A~Fは大文字でも小文字でもかまいません。次のステートメントは小文字を使用しますが、前のステートメントと同じ結果を生成します。

SELECT HEX_DECODE_STRING('536e6f77666c616b65');

-----------------------------------------+
 HEX_DECODE_STRING('536E6F77666C616B65') |
-----------------------------------------+
 Snowflake                               |
-----------------------------------------+
Copy

これは、 HEX_DECODE_STRING を使用する別の例を示しています。

テーブルとデータを作成します。

CREATE TABLE binary_table (v VARCHAR, b BINARY);
INSERT INTO binary_table (v, b) 
    SELECT 'HELLO', HEX_DECODE_BINARY(HEX_ENCODE('HELLO'));
Copy

クエリを実行して、データを取得できることを示します。

SELECT v, b, HEX_DECODE_STRING(TO_VARCHAR(b)) FROM binary_table;
+-------+------------+----------------------------------+
| V     | B          | HEX_DECODE_STRING(TO_VARCHAR(B)) |
|-------+------------+----------------------------------|
| HELLO | 48454C4C4F | HELLO                            |
+-------+------------+----------------------------------+
Copy