try_to_binary
-functie
Van toepassing op: Databricks SQL Preview Databricks Runtime 11.3 LTS en hoger
expr
Hiermee wordt cast geretourneerd naar BINARY op fmt
basis van , of NULL als de invoer niet geldig is.
Syntaxis
try_to_binary(expr [, fmt] )
Argumenten
-
expr
: Een TEKENREEKS-expressie die moet worden gecast. -
fmt
: Een letterlijke tekenreeks die beschrijft hoe te interpreterenexpr
.
Retouren
EEN BINAIR.
Opmerkingen
Indien fmt
opgegeven, moet deze een van (hoofdlettergevoelig) zijn:
'HEX'
expr
moet een hexadecimale tekenreeks zijn. Elk teken moet een hexadecimaal cijfer zijn en er moet een even aantal cijfers zijn. Het resultaat is de binaire weergave van de hexadecimale tekenreeks.Als
expr
dit geen goed gevormde hexadecimale waarde is, retourneertNULL
de functie . Gebruik to_binary om in plaats daarvan een fout te retourneren.'BASE64'
expr
moet een RFC 4648 §4 zijn: base64 (standaard) gecodeerde tekenreeks. Het resultaat is de gedecodeerde binaire gegevens.'UTF-8'
of'UTF8'
expr
wordt geïnterpreteerd als een UTF-8-tekenreeks. Het resultaat is de binaire weergave van de tekenreeks.
De standaardwaarde fmt
is 'HEX'
.
Voorbeelden
> 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