Funktionen try_to_binary

Gäller för:markerad ja Databricks SQL preview markerad ja Databricks Runtime 11.3 LTS och senare

Returnerar expr cast till BINARY baserat på fmt, eller NULL om indata inte är giltiga.

Syntax

try_to_binary(expr [, fmt] )

Argument

  • expr: Ett STRING-uttryck som ska gjutas.
  • fmt: En STRING-literal som beskriver hur du tolkar expr.

Returer

EN BINÄR FIL.

Kommentar

Om fmt anges måste det vara ett av (skiftlägesokänsligt):

  • 'HEX'

    expr måste vara en hexadecimal sträng. Varje tecken måste vara en hexadecimal siffra och det måste finnas ett jämnt antal siffror. Resultatet är den binära representationen av hexadecimal strängen.

    Om expr inte är ett välformat hexadecimalt värde returnerar NULLfunktionen . Använd to_binary för att returnera ett fel i stället.

  • 'BASE64'

    expr måste vara en RFC 4648 §4: base64 (standard) kodad sträng. Resultatet är de avkodade binära data.

  • 'UTF-8' eller 'UTF8'

    expr tolkas som en UTF-8-sträng. Resultatet är den binära representationen av strängen.

Standardvärdet fmt är 'HEX'.

Exempel

> 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