Compartir a través de


Función try_to_binary

Se aplica a:casilla marcada como sí versión preliminar de Databricks SQL casilla marcada como Sí Databricks Runtime 11.3 LTS y versiones posteriores

Devuelve la conversión de expr a BINARY basada en fmt, o NULL si la entrada no es válida.

Sintaxis

try_to_binary(expr [, fmt] )

Argumentos

  • expr: expresión STRING que se va a convertir.
  • fmt: literal de STRING que describe cómo interpretar expr.

Devoluciones

Una expresión binaria.

Notas

Si se proporciona fmt, debe ser uno de los valores siguientes (sin distinción entre mayúsculas y minúsculas):

  • 'HEX'

    expr debe ser una cadena hexadecimal. Cada carácter debe ser un dígito hexadecimal y debe haber un número par de dígitos. El resultado es la representación binaria de la cadena hexadecimal.

    Si expr no es un valor hexadecimal con formato correcto, la función devuelve NULL. Use to_binary para devolver un error en su lugar.

  • 'BASE64'

    expr debe ser una cadena RFC 4648 §4: base64 (estándar) codificada. El resultado son los datos binarios descodificados.

  • 'UTF-8' o 'UTF8'

    expr se interpreta como cadena UTF-8. El resultado es la representación binaria de la cadena.

El valor predeterminado de fmt es 'HEX'.

Ejemplos

> 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