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