メインコンテンツまでスキップ
バージョン: 26.x

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を返す

  1. 基本的なデコード
SELECT FROM_BASE64('MQ=='), FROM_BASE64('QQ==');
+---------------------+---------------------+
| FROM_BASE64('MQ==') | FROM_BASE64('QQ==') |
+---------------------+---------------------+
| 1 | A |
+---------------------+---------------------+
  1. マルチ文字デコーディング
SELECT FROM_BASE64('MjM0'), FROM_BASE64('SGVsbG8=');
+---------------------+-------------------------+
| FROM_BASE64('MjM0') | FROM_BASE64('SGVsbG8=') |
+---------------------+-------------------------+
| 234 | Hello |
+---------------------+-------------------------+
  1. NULL値の処理
SELECT FROM_BASE64(NULL);
+-------------------+
| FROM_BASE64(NULL) |
+-------------------+
| NULL |
+-------------------+
  1. 空文字列の処理
SELECT FROM_BASE64('');
+-----------------+
| FROM_BASE64('') |
+-----------------+
| |
+-----------------+
  1. 不正文字の処理
SELECT FROM_BASE64('!!!'), FROM_BASE64('ABC@DEF');
+--------------------+------------------------+
| FROM_BASE64('!!!') | FROM_BASE64('ABC@DEF') |
+--------------------+------------------------+
| NULL | NULL |
+--------------------+------------------------+