- Categorias:
TRY_TO_BINARY¶
Uma versão especial de TO_BINARY que realiza a mesma operação (ou seja, converte uma expressão de entrada em um valor binário), mas com suporte para tratamento de erros (ou seja, se a conversão não puder ser realizada, retorna um valor NULL em vez de acusar um erro).
Para obter mais informações, consulte:
Sintaxe¶
TRY_TO_BINARY( <string_expr> [, '<format>'] )
Argumentos¶
Obrigatório:
string_expr
Uma expressão de cadeia de caracteres.
Opcional:
format
O formato binário para conversão: HEX, BASE64 ou UTF-8 (consulte Binary Input and Output). O padrão é o valor do parâmetro de sessão BINARY_INPUT_FORMAT. Se este parâmetro não for definido, o padrão é HEX.
Retornos¶
Retorna um valor do tipo BINARY.
Notas de uso¶
Funciona apenas para expressões de cadeia de caracteres.
Se
format
for especificado mas não for HEX, BASE64, ou UTF-8, o resultado será um valor NULL.
Exemplos¶
Isto mostra como usar a função TRY_TO_BINARY
ao carregar cadeias de caracteres codificadas com hexadecimal em uma coluna BINARY:
Criar e preencher uma tabela:
CREATE TABLE strings (v VARCHAR, hex_encoded_string VARCHAR, b BINARY); INSERT INTO strings (v) VALUES ('01'), ('A B'), ('Hello'), (NULL); UPDATE strings SET hex_encoded_string = HEX_ENCODE(v); UPDATE strings SET b = TRY_TO_BINARY(hex_encoded_string, 'HEX');Consulte a tabela, chamando TRY_TO_BINARY():
SELECT v, hex_encoded_string, TO_VARCHAR(b, 'UTF-8') FROM strings ORDER BY v ; +-------+--------------------+------------------------+ | V | HEX_ENCODED_STRING | TO_VARCHAR(B, 'UTF-8') | |-------+--------------------+------------------------| | 01 | 3031 | 01 | | A B | 412042 | A B | | Hello | 48656C6C6F | Hello | | NULL | NULL | NULL | +-------+--------------------+------------------------+