Функция 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