Categorias:

Funções de conversão

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>'] )
Copy

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');
Copy

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                   |
+-------+--------------------+------------------------+
Copy