Funkce to_binary
Platí pro: Databricks SQL Preview
Databricks Runtime 11.3 LTS a vyšší
Vrátí expr
přetypování na hodnotu BINARY na fmt
základě .
Syntaxe
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í platný šestnáctkový řetězec Azure Databricks, vrátí CONVERSION_INVALID_INPUT chybu. Místo toho použijte try_to_binary k vrácení hodnoty NULL.'BASE64'
expr
musí být RFC 4648 §4: base64 (standardní) kódovaný řetězec. Výsledkem jsou dekódovaná binární data. V části RFC 4648 §4 jakýkoli poškozený řetězec bae64 způsobí chybu CONVERSION_INVALID_INPUT .'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