カテゴリ:

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

TRY_HEX_DECODE_BINARY

デコード中にエラーが発生した場合に NULL 値を返す HEX_DECODE_BINARY の特別なバージョンです。

構文

TRY_HEX_DECODE_BINARY(<input>)

引数

入力

16進数のみを含む文字列式です。通常、この入力文字列は関数 HEX_ENCODE を呼び出して生成されます。

戻り値

BINARY 型の列に挿入できる BINARY 値などです。

これは、関数 TRY_HEX_DECODE_BINARY の使用方法を示しています(関数は INSERT ステートメントで使用され、BINARY フィールド 内に デコードされます。この関数は SELECT ステートメントでは使用されません。

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

CREATE TABLE hex (v VARCHAR, b BINARY);
INSERT INTO hex (v, b)
   SELECT 'ABab', 
     -- Convert string -> hex-encoded string -> binary.
     TRY_HEX_DECODE_BINARY(HEX_ENCODE('ABab'));

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

SELECT v, b, 
    -- Convert binary -> hex-encoded-string -> string.
    TRY_HEX_DECODE_STRING(TO_VARCHAR(b)) 
  FROM hex;

出力:

+------+----------+--------------------------------------+
| V    | B        | TRY_HEX_DECODE_STRING(TO_VARCHAR(B)) |
|------+----------+--------------------------------------|
| ABab | 41426162 | ABab                                 |
+------+----------+--------------------------------------+