Compartilhar via


Função try_to_binary

Aplica-se a: verificação marcada como sim Versão prévia do Databricks SQL verificação marcada como sim Databricks Runtime 11.3 LTS e versões posteriores

Retorna expr conversão para BINARY com base em fmt ou NULL se a entrada for inválida.

Sintaxe

try_to_binary(expr [, fmt] )

Argumentos

  • expr: uma expressão de STRING a ser convertida.
  • fmt: um literal STRING que descreve como interpretar expr.

Retornos

Um BINARY.

Observações

Se fmt for fornecido, ele deverá ser um dos (não diferencia maiúsculas de minúsculas):

  • 'HEX'

    expr deve ser uma cadeia de caracteres hexadecimal. Cada caractere deve ser um dígito hexadecimal e deve haver um número par de dígitos. O resultado é a representação binária da cadeia de caracteres hexadecimal.

    Se expr não for um valor hexadecimal bem formado, a função retornará NULL. Use to_binary para retornar um erro.

  • 'BASE64'

    expr deve ser uma cadeia de caracteres codificada RFC 4648 §4: base64 (padrão). O resultado são os dados binários decodificados.

  • 'UTF-8' ou 'UTF8'

    expr é interpretado como uma cadeia de caracteres UTF-8. O resultado é a representação binária da cadeia de caracteres.

O valor padrão fmt é 'HEX'.

Exemplos

> SELECT cast(to_binary('537061726B') AS STRING);
  Spark

> SELECT cast(to_binary('hello', 'hex') AS STRING);
  Error: CONVERSION_INVALID_INPUT

> SELECT cast(try_to_binary('hello', 'hex') AS STRING);
  NULL

> SELECT cast(to_binary('537061726B', 'hex') AS STRING);
  Spark

> SELECT cast(to_binary('U3Bhcms=', 'base64') AS STRING);
  Spark

> SELECT cast(to_binary('U3Bhxcms=', 'base64') AS STRING);
  Error: CONVERSION_INVALID_INPUT

> SELECT cast(try_to_binary('U3Bhxcms=', 'base64') AS STRING);
  NULL

> SELECT hex(to_binary('서울시(Seoul)', 'UTF-8'));
  EC849CEC9AB8EC8B9C2853656F756C29