Función try_to_binary
Se aplica a Databricks SQL (versión preliminar) 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 interpretarexpr
.
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 devuelveNULL
. 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