Udostępnij za pośrednictwem


Funkcja try_to_binary

Dotyczy: zaznacz pole wyboru oznaczone jako tak Databricks SQL preview zaznacz pole wyboru oznaczone jako tak Databricks Runtime 11.3 LTS i nowsze

Zwraca expr rzutowanie do pliku BINARY na fmtpodstawie 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 interpretowania exprelementu .

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 zwraca NULLwartość . Użyj to_binary , aby zamiast tego zwrócić błąd.

  • 'BASE64'

    exprmusi 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