- 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>])
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
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¶
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'));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 | +------+------------------------+-------------------------+------------------------+