- カテゴリ:
文字列とバイナリ関数 (エンコード/デコード)
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 | +-------+---------------+-------------------------------------+