- 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¶
inputA cadeia de caracteres codificada com base64 a ser convertida em um tipo de dados BINARY.
alphabetUma 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:
AaZ(índices 0-25).aaz(índices 26-51).0a9(í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 | +------+------------------------+-------------------------+------------------------+