カテゴリ:

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

TRY_BASE64_DECODE_STRING

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

BASE64_DECODE_STRING および TRY_BASE64_DECODE_STRING は、 BASE64_ENCODE の「相反」(または「逆」)関数です。

構文

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

引数

入力

通常の文字列にデコードするbase64エンコード文字列です。

アルファベット

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

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

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

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

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

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

    デフォルト: + および /

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

    デフォルト: =

戻り値

文字列です。

使用上の注意

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

これは、関数の使用方法を示し、 TRY_BASE64_DECODE_STRINGBASE64_ENCODE の逆であることを示しています。

SELECT TRY_BASE64_DECODE_STRING(BASE64_ENCODE('HELLO'));
+--------------------------------------------------+
| TRY_BASE64_DECODE_STRING(BASE64_ENCODE('HELLO')) |
|--------------------------------------------------|
| HELLO                                            |
+--------------------------------------------------+

これは、より現実的な例を示しています。

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

CREATE TABLE base64 (v VARCHAR, base64_string VARCHAR, garbage VARCHAR);
INSERT INTO base64 (v, base64_string, garbage) 
  SELECT 'HELLO', BASE64_ENCODE('HELLO'), '127';

TRY_BASE64_DECODE_STRING 関数を使用してデータをクエリします。

SELECT v, base64_string, TRY_BASE64_DECODE_STRING(base64_string), TRY_BASE64_DECODE_STRING(garbage) FROM base64;
+-------+---------------+-----------------------------------------+-----------------------------------+
| V     | BASE64_STRING | TRY_BASE64_DECODE_STRING(BASE64_STRING) | TRY_BASE64_DECODE_STRING(GARBAGE) |
|-------+---------------+-----------------------------------------+-----------------------------------|
| HELLO | SEVMTE8=      | HELLO                                   | NULL                              |
+-------+---------------+-----------------------------------------+-----------------------------------+