Funkce try_to_binary
Platí pro: Databricks SQL Preview Databricks Runtime 11.3 LTS a vyšší
Vrátí expr
přetypování na binary na fmt
základě hodnoty null, pokud vstup není platný.
Syntaxe
try_to_binary(expr [, fmt] )
Argumenty
expr
: Výraz STRING, který se má přetypovat.fmt
: Literál STRING popisující, jak interpretovatexpr
.
Návraty
BINÁRNÍ.
Notes
Pokud fmt
je zadán, musí být jedno z (nerozlišuje velká a malá písmena):
'HEX'
expr
musí být šestnáctkový řetězec. Každý znak musí být šestnáctková číslice a musí existovat sudý počet číslic. Výsledkem je binární reprezentace šestnáctkového řetězce.Pokud
expr
není správně vytvořená šestnáctková hodnota, vrátíNULL
funkce . Místo toho použijte to_binary k vrácení chyby.'BASE64'
expr
musí být RFC 4648 §4: base64 (standardní) kódovaný řetězec. Výsledkem jsou dekódovaná binární data.'UTF-8'
nebo'UTF8'
expr
interpretuje se jako řetězec UTF-8. Výsledkem je binární reprezentace řetězce.
Výchozí hodnota fmt
je 'HEX'
.
Příklady
> 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