Sdílet prostřednictvím


Funkce try_to_binary

Platí pro: zaškrtnutí označeného ano Databricks SQL Preview zaškrtnutí označeného ano Databricks Runtime 11.3 LTS a vyšší

Vrátí expr přetypování na binary na fmtzákladě hodnoty null, pokud vstup není platný.

Syntaxe

try_to_binary(expr [, fmt] )

Argumenty

  • expr: Výraz STRING, který se má přetypovat.
  • fmt: Literál STRING popisující, jak interpretovat expr.

Návraty

BINÁRNÍ.

Notes

Pokud fmt je zadán, musí být jedno z (nerozlišuje velká a malá písmena):

  • 'HEX'

    expr musí být šestnáctkový řetězec. Každý znak musí být šestnáctková číslice a musí existovat sudý počet číslic. Výsledkem je binární reprezentace šestnáctkového řetězce.

    Pokud expr není správně vytvořená šestnáctková hodnota, vrátí NULLfunkce . Místo toho použijte to_binary k vrácení chyby.

  • 'BASE64'

    expr musí být RFC 4648 §4: base64 (standardní) kódovaný řetězec. Výsledkem jsou dekódovaná binární data.

  • 'UTF-8' nebo 'UTF8'

    expr interpretuje se jako řetězec UTF-8. Výsledkem je binární reprezentace řetězce.

Výchozí hodnota fmt je 'HEX'.

Příklady

> 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