Categorias:

Funções de cadeia de caracteres e binários (Codificação/Decodificação)

BASE64_ENCODE

Codifica a entrada (cadeia de caracteres ou binária) usando a codificação Base64.

Consulte também:

BASE64_DECODE_BINARY , BASE64_DECODE_STRING

Sintaxe

BASE64_ENCODE( <input> [ , <max_line_length> ] [ , <alphabet> ] )
Copy

Argumentos

Obrigatório:

input

Uma cadeia de caracteres ou expressão binária a ser codificada.

Opcional:

max_line_length

Um número inteiro positivo que especifica o número máximo de caracteres em uma única linha da saída.

Padrão: 0 (especifica que nenhuma quebra de linha é inserida (ou seja, o comprimento máximo da linha é infinito))

alphabet

Uma cadeia de caracteres que tem até três caracteres ASCII:

  • Os dois primeiros caracteres na cadeia de caracteres especificam os dois últimos caracteres (índices 62 e 63) no alfabeto usado para codificar a entrada:

    • A a Z (índices 0-25)

    • a a z (índices 26-51)

    • 0 a 9 (índices 52-61)

    • + e / (índices 62, 63)

    Padrões: + e /

  • O terceiro caractere na cadeia de caracteres especifica o caractere usado para preenchimento.

    Padrão: =

Retornos

Retorna uma cadeia de caracteres (independentemente de a entrada ter sido uma cadeia de caracteres ou BINARY).

Notas de uso

  • Os caracteres da cadeia de caracteres alphabet são analisados em posição; para especificar caracteres diferentes na segunda ou terceira posição da cadeia de caracteres, você deve especificar explicitamente todos os caracteres anteriores, mesmo que deseje usar os padrões.

    Por exemplo:

    • +$ especifica o padrão (+) para o índice 62 e um caractere diferente ($) para o índice 63; nenhum caractere é explicitamente especificado para preenchimento, portanto o caractere padrão (=) será usado.

    • +/% especifica os padrões (+ e /) para índices 62 e 63, e especifica um caractere diferente (%) para preenchimento.

  • Se você especificar uma cadeia de caracteres alphabet para codificar input, a mesma cadeia de caracteres deve ser usada para decodificar input.

Para obter mais informações sobre o formato base64, consulte base64.

Retornos

Isto retorna uma cadeia de caracteres que contém apenas os caracteres utilizados para a codificação de base64.

Exemplos

Codificar uma cadeia de caracteres usando Base64:

SELECT BASE64_ENCODE('Snowflake');

----------------------------+
 BASE64_ENCODE('SNOWFLAKE') |
----------------------------+
 U25vd2ZsYWtl               |
----------------------------+
Copy

Codificar uma cadeia de caracteres contendo caracteres não ASCII usando Base64 com ‘$’ no lugar de ‘+’ para codificação, e emitir a cadeia de caracteres com um comprimento máximo de linha de 32:

SELECT BASE64_ENCODE('Snowflake ❄❄❄ Snowman ☃☃☃',32,'$');

---------------------------------------------------+
 BASE64_ENCODE('SNOWFLAKE ❄❄❄ SNOWMAN ☃☃☃',32,'$') |
---------------------------------------------------+
 U25vd2ZsYWtlIOKdhOKdhOKdhCBTbm93                  |
 bWFuIOKYg$KYg$KYgw==                              |
---------------------------------------------------+
Copy

Isto mostra outro exemplo de utilização de BASE64_ENCODE (e também BASE64_DECODE_STRING):

Criar uma tabela e dados:

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);
Copy

Agora execute uma consulta usando 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                               |
+-------+---------------+-------------------------------------+
Copy