Функция try_to_binary
Область применения: Databricks SQL preview Databricks Runtime 11.3 LTS и выше
Возвращает приведение expr
к binary на fmt
основе значения NULL, если входные данные недопустимы.
Синтаксис
try_to_binary(expr [, fmt] )
Аргументы
-
expr
: строковое выражение для приведения. -
fmt
: строковый литерал, описывающий интерпретациюexpr
.
Возвраты
Значение BINARY.
Примечания.
Если fmt
задано, оно должно быть одним из (без учета регистра):
'HEX'
expr
должен быть шестнадцатеричной строкой. Каждый символ должен быть шестнадцатеричной цифрой, и должно быть четное число цифр. Результатом является двоичное представление шестнадцатеричной строки.Если
expr
не является хорошо сформированным шестнадцатеричным значением, функция возвращаетсяNULL
. Вместо этого используйте to_binary для возврата ошибки.'BASE64'
expr
должен быть строкой в кодировке RFC 4648 §4: base64 (standard). Результатом является декодированные двоичные данные.'UTF-8'
или'UTF8'
expr
интерпретируется как строка UTF-8. Результатом является двоичное представление строки.
По умолчанию fmt
является 'HEX'
.
Примеры
> 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