- カテゴリ:
文字列とバイナリ関数 (エンコード/デコード)
BASE64_ENCODE¶
Base64エンコーディングを使用して入力(文字列またはバイナリ)をエンコードします。
- こちらもご参照ください。
構文¶
BASE64_ENCODE( <input> [ , <max_line_length> ] [ , <alphabet> ] )
引数¶
必須:
input
エンコードされる文字列またはバイナリ式です。
オプション:
max_line_length
出力の1行の最大文字数を指定する正の整数です。
デフォルト:
0
(改行が挿入されないこと(つまり、最大行長が無限であること)を指定します)alphabet
最大3つの ASCII 文字で構成される文字列です。
文字列の最初の2文字は、入力のエンコードに使用されるアルファベットの最後の2文字(インデックス62および63)を指定します。
A
からZ
(インデックス0~25)a
からz
(インデックス26~51)0
から9
(インデックス52~61)+
および/
(インデックス62、63)
デフォルト:
+
および/
文字列の3番目の文字は、パディングに使用される文字を指定します。
デフォルト:
=
戻り値¶
文字列を返します(入力が文字列であるか BINARY
であるかを問わない)。
使用上の注意¶
alphabet
文字列の文字は位置的に解析されます。文字列の2番目または3番目の位置に異なる文字を指定するには、デフォルトを使用する場合でも、先行するすべての文字を明示的に指定する必要があります。例:
+$
は、インデックス62のデフォルト(+
)とインデックス63の別の文字($
)を指定します。パディングに明示的に文字が指定されていないため、デフォルトの文字(=
)が使用されます。+/%
は、インデックス62および63のデフォルト(+
および/
)を指定し、パディングに異なる文字(%
)を指定します。
alphabet
文字列を指定してinput
をエンコードする場合、input
のデコードには 同じ文字列を使用する必要があります 。
base64形式の詳細については、 base64 をご参照ください。
戻り値¶
これは、base64エンコードに使用される文字のみを含む文字列を返します。
例¶
Base64を使用して文字列をエンコードします。
SELECT BASE64_ENCODE('Snowflake');
----------------------------+
BASE64_ENCODE('SNOWFLAKE') |
----------------------------+
U25vd2ZsYWtl |
----------------------------+
エンコード用に「+」の代わりに「$」を付けたBase64を使用して、ASCII 以外の文字を含む文字列をエンコードし、最大行長が32の文字列を出力します。
SELECT BASE64_ENCODE('Snowflake ❄❄❄ Snowman ☃☃☃',32,'$');
---------------------------------------------------+
BASE64_ENCODE('SNOWFLAKE ❄❄❄ SNOWMAN ☃☃☃',32,'$') |
---------------------------------------------------+
U25vd2ZsYWtlIOKdhOKdhOKdhCBTbm93 |
bWFuIOKYg$KYg$KYgw== |
---------------------------------------------------+
これは、 BASE64_ENCODE
(および BASE64_DECODE_STRING
)を使用する別の例を示しています。
テーブルとデータを作成します。
CREATE OR REPLACE TABLE base64_table (v VARCHAR, base64_string VARCHAR); INSERT INTO base64_table (v) VALUES ('HELLO'); UPDATE base64_table SET base64_string = BASE64_ENCODE(v);
BASE64_DECODE_STRING
を使用してクエリを実行します。SELECT v, base64_string, BASE64_DECODE_STRING(base64_string) FROM base64_table; +-------+---------------+-------------------------------------+ | V | BASE64_STRING | BASE64_DECODE_STRING(BASE64_STRING) | |-------+---------------+-------------------------------------| | HELLO | SEVMTE8= | HELLO | +-------+---------------+-------------------------------------+