カテゴリ:

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

TRY_BASE64_DECODE_BINARY

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

構文

TRY_BASE64_DECODE_BINARY(<input> [, <alphabet>])

引数

入力

BINARY データ型に変換するbase64エンコード文字列です。

アルファベット

最大3つの ASCII 文字で構成される文字列です。

  • 文字列の最初の2文字は、入力のエンコードに使用されるアルファベットの最後の2文字(インデックス62および63)を指定します。

    • A から Z (インデックス0~25)

    • a から z (インデックス26~51)

    • 0 から 9 (インデックス52~61)

    • + および / (インデックス62、63)

    デフォルト: + および /

  • 文字列の3番目の文字は、パディングに使用される文字を指定します。

    デフォルト: =

戻り値

これは BINARY 値を返します。例えば、値は BINARY 型の列に挿入できます。

使用上の注意

base64形式の詳細については、 Base64 をご参照ください。

これは、関数 TRY_BASE64_DECODE_BINARY の使用方法を示しています。この関数は、base64でエンコードされた文字列を BINARY フィールド 内に デコードするために INSERT ステートメントで使用されます。この関数は SELECT ステートメントでは使用されません。

テーブルを作成してデータを挿入します。

CREATE TABLE base64 (v VARCHAR, base64_encoded_varchar VARCHAR, b BINARY);
INSERT INTO base64 (v, base64_encoded_varchar, b)
   SELECT 'HELP', BASE64_ENCODE('HELP'),
      TRY_BASE64_DECODE_BINARY(BASE64_ENCODE('HELP'));

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

SELECT v, base64_encoded_varchar, 
    -- Convert binary -> base64-encoded-string
    TO_VARCHAR(b, 'BASE64'),
    -- Convert binary back to original value
    TO_VARCHAR(b, 'UTF-8')
  FROM base64;
+------+------------------------+-------------------------+------------------------+
| V    | BASE64_ENCODED_VARCHAR | TO_VARCHAR(B, 'BASE64') | TO_VARCHAR(B, 'UTF-8') |
|------+------------------------+-------------------------+------------------------|
| HELP | SEVMUA==               | SEVMUA==                | HELP                   |
+------+------------------------+-------------------------+------------------------+