Funkcja try_to_binary
Dotyczy: Databricks SQL preview Databricks Runtime 11.3 LTS i nowsze
Zwraca expr
rzutowanie do pliku BINARY na fmt
podstawie wartości lub null, jeśli dane wejściowe są nieprawidłowe.
Składnia
try_to_binary(expr [, fmt] )
Argumenty
expr
: wyrażenie STRING do rzutowania.fmt
: literał CIĄGU opisujący sposób interpretowaniaexpr
elementu .
Zwraca
PLIK BINARNY.
Uwagi
Jeśli fmt
jest dostarczany, musi być jednym z (bez uwzględniania wielkości liter):
'HEX'
expr
musi być ciągiem szesnastkowym. Każdy znak musi być cyfrą szesnastkową i musi zawierać parzystą liczbę cyfr. Wynikiem jest binarna reprezentacja ciągu szesnastkowego.Jeśli
expr
nie jest dobrze sformułowaną wartością szesnastkową, funkcja zwracaNULL
wartość . Użyj to_binary , aby zamiast tego zwrócić błąd.'BASE64'
expr
musi być ciągiem zakodowanym w formacie RFC 4648 §4: base64 (standardowy). Wynikiem są zdekodowane dane binarne.'UTF-8'
lub'UTF8'
expr
jest interpretowany jako ciąg UTF-8. Wynikiem jest binarna reprezentacja ciągu.
Wartość domyślna fmt
to 'HEX'
.
Przykłady
> 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