Categorias:

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

TRY_BASE64_DECODE_STRING

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

BASE64_DECODE_STRING e TRY_BASE64_DECODE_STRING são funções “recíprocas” (ou “inversas”) de BASE64_ENCODE.

Sintaxe

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

Argumentos

input

A cadeia de caracteres codificada em base64 para decodificar para uma cadeia de caracteres normal.

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

Uma cadeia de caracteres.

Notas de uso

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

Exemplos

Isto mostra como usar a função e demonstra que TRY_BASE64_DECODE_STRING é o inverso de BASE64_ENCODE:

SELECT TRY_BASE64_DECODE_STRING(BASE64_ENCODE('HELLO'));
+--------------------------------------------------+
| TRY_BASE64_DECODE_STRING(BASE64_ENCODE('HELLO')) |
|--------------------------------------------------|
| HELLO                                            |
+--------------------------------------------------+
Copy

Isto mostra um exemplo mais realista:

Criar uma tabela e dados:

CREATE TABLE base64 (v VARCHAR, base64_string VARCHAR, garbage VARCHAR);
INSERT INTO base64 (v, base64_string, garbage) 
  SELECT 'HELLO', BASE64_ENCODE('HELLO'), '127';
Copy

Consultar os dados usando a função TRY_BASE64_DECODE_STRING:

SELECT v, base64_string, TRY_BASE64_DECODE_STRING(base64_string), TRY_BASE64_DECODE_STRING(garbage) FROM base64;
+-------+---------------+-----------------------------------------+-----------------------------------+
| V     | BASE64_STRING | TRY_BASE64_DECODE_STRING(BASE64_STRING) | TRY_BASE64_DECODE_STRING(GARBAGE) |
|-------+---------------+-----------------------------------------+-----------------------------------|
| HELLO | SEVMTE8=      | HELLO                                   | NULL                              |
+-------+---------------+-----------------------------------------+-----------------------------------+
Copy