Funktionen try_to_binary
Gäller för: Databricks SQL preview
Databricks Runtime 11.3 LTS och senare
Returnerar expr
cast till BINARY baserat på fmt
, eller NULL om indata inte är giltiga.
Syntax
try_to_binary(expr [, fmt] )
Argument
-
expr
: Ett STRING-uttryck som ska gjutas. -
fmt
: En STRING-literal som beskriver hur du tolkarexpr
.
Returer
EN BINÄR FIL.
Kommentar
Om fmt
anges måste det vara ett av (skiftlägesokänsligt):
'HEX'
expr
måste vara en hexadecimal sträng. Varje tecken måste vara en hexadecimal siffra och det måste finnas ett jämnt antal siffror. Resultatet är den binära representationen av hexadecimal strängen.Om
expr
inte är ett välformat hexadecimalt värde returnerarNULL
funktionen . Använd to_binary för att returnera ett fel i stället.'BASE64'
expr
måste vara en RFC 4648 §4: base64 (standard) kodad sträng. Resultatet är de avkodade binära data.'UTF-8'
eller'UTF8'
expr
tolkas som en UTF-8-sträng. Resultatet är den binära representationen av strängen.
Standardvärdet fmt
är 'HEX'
.
Exempel
> 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