FROM_BASE64
説明
FROM_BASE64関数は、Base64エンコードされた文字列を元の文字列にデコードします。これはTO_BASE64の逆操作であり、RFC 4648標準に従います。Base64エンコーディングは、テキストプロトコルでバイナリデータを送信するために一般的に使用され、この関数はエンコードされたデータを復元できます。標準のBase64文字セット(A-Z、a-z、0-9、+、/)およびパディング文字(=)をサポートします。
構文
FROM_BASE64(<str>)
パラメータ
| パラメータ | 説明 |
|---|---|
<str> | デコードするBase64エンコードされた文字列。型: VARCHAR |
戻り値
VARCHAR型を返し、Base64デコード後の元の文字列を表します。
デコードルール:
- 標準のBase64文字セットを受け入れ: A-Z, a-z, 0-9, +, /
- パディング文字 = をサポート
- RFC 4648標準に従う
- 空白文字(スペース、改行など)を自動的に無視
- デコード結果には印刷不可能な文字が含まれる場合があります
特殊なケース:
- 入力がNULLの場合、NULLを返す
- 入力に不正なBase64文字が含まれている場合、NULLを返す
- 入力が空文字列の場合、空文字列を返す
- パディングが正しくない、またはフォーマットが無効な場合、NULLを返す
例
- 基本的なデコード
SELECT FROM_BASE64('MQ=='), FROM_BASE64('QQ==');
+---------------------+---------------------+
| FROM_BASE64('MQ==') | FROM_BASE64('QQ==') |
+---------------------+---------------------+
| 1 | A |
+---------------------+---------------------+
- マルチ文字デコーディング
SELECT FROM_BASE64('MjM0'), FROM_BASE64('SGVsbG8=');
+---------------------+-------------------------+
| FROM_BASE64('MjM0') | FROM_BASE64('SGVsbG8=') |
+---------------------+-------------------------+
| 234 | Hello |
+---------------------+-------------------------+
- NULL値の処理
SELECT FROM_BASE64(NULL);
+-------------------+
| FROM_BASE64(NULL) |
+-------------------+
| NULL |
+-------------------+
- 空文字列の処理
SELECT FROM_BASE64('');
+-----------------+
| FROM_BASE64('') |
+-----------------+
| |
+-----------------+
- 不正文字の処理
SELECT FROM_BASE64('!!!'), FROM_BASE64('ABC@DEF');
+--------------------+------------------------+
| FROM_BASE64('!!!') | FROM_BASE64('ABC@DEF') |
+--------------------+------------------------+
| NULL | NULL |
+--------------------+------------------------+