- 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>])
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
aZ
(índices 0-25).a
az
(índices 26-51).0
a9
(í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 | +--------------------------------------------------+
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';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 | +-------+---------------+-----------------------------------------+-----------------------------------+