Categorias:

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

TRY_BASE64_DECODE_BINARY

Uma versão especial de BASE64_DECODE_BINARY que retorna um valor NULL se ocorrer um erro durante a decodificação.

Sintaxe

TRY_BASE64_DECODE_BINARY(<input> [, <alphabet>])
Copy

Argumentos

input

A cadeia de caracteres codificada com base64 a ser convertida em um tipo de dados BINARY.

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

Isto retorna um valor BINARY. O valor pode ser inserido em uma coluna do tipo BINARY, por exemplo.

Notas de uso

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

Exemplos

Isso mostra como usar a função TRY_BASE64_DECODE_BINARY. A função é usada na instrução INSERT para decodificar uma cadeia de caracteres codificada em Base64 em um campo BINARY; a função não é usada na instrução SELECT.

Criar uma tabela e inserir dados:

CREATE TABLE base64 (v VARCHAR, base64_encoded_varchar VARCHAR, b BINARY);
INSERT INTO base64 (v, base64_encoded_varchar, b)
   SELECT 'HELP', BASE64_ENCODE('HELP'),
      TRY_BASE64_DECODE_BINARY(BASE64_ENCODE('HELP'));
Copy

Agora faça uma consulta para mostrar que podemos recuperar os dados intactos:

SELECT v, base64_encoded_varchar, 
    -- Convert binary -> base64-encoded-string
    TO_VARCHAR(b, 'BASE64'),
    -- Convert binary back to original value
    TO_VARCHAR(b, 'UTF-8')
  FROM base64;
+------+------------------------+-------------------------+------------------------+
| V    | BASE64_ENCODED_VARCHAR | TO_VARCHAR(B, 'BASE64') | TO_VARCHAR(B, 'UTF-8') |
|------+------------------------+-------------------------+------------------------|
| HELP | SEVMUA==               | SEVMUA==                | HELP                   |
+------+------------------------+-------------------------+------------------------+
Copy