Freigeben über


to_binary-Funktion

Gilt für: Häkchen ja Databricks SQL (Vorschau) Häkchen gesetzt ja Databricks Runtime 11.3 LTS und höher

Gibt die expr-Umwandlung in einen BINARY-Wert basierend auf fmt zurück.

Syntax

to_binary(expr [, fmt] )

Argumente

  • expr: Ein STRING-Ausdruck, der umgewandelt werden soll.
  • fmt: Ein STRING-Literal, das beschreibt, wie expr interpretiert werden soll.

Gibt zurück

Einen BINARY-Ausdruck

Notizen

Wenn fmt angegeben wird, muss eines der folgenden Formate vorliegen (keine Berücksichtigung der Groß-/Kleinschreibung):

  • 'HEX'

    expr muss eine Hexadezimalzeichenfolge sein. Jedes Zeichen muss eine Hexadezimalziffer sein, und es muss eine gerade Anzahl von Ziffern vorhanden sein. Das Ergebnis ist die binäre Darstellung der Hexadezimalzeichenfolge.

    Wenn expr keine gültige Hexadezimalzeichenfolge ist, gibt Azure Databricks einen CONVERSION_INVALID_INPUT-Fehler zurück. Verwenden Sie try_to_binary, um stattdessen einen NULL-Wert zurückzugeben.

  • 'BASE64'

    expr muss eine gemäß RFC 4648 §4: Base64 (Standard) codierte Zeichenfolge sein. Das Ergebnis sind die decodierten Binärdaten. Gemäß RFC 4648 §4 führt jede nicht wohlgeformte Base64-Zeichenfolge zu einem CONVERSION_INVALID_INPUT-Fehler.

  • 'UTF-8' oder 'UTF8'

    expr wird als UTF-8-Zeichenfolge interpretiert. Das Ergebnis ist die binäre Darstellung der Zeichenfolge.

Der Standardwert von fmt lautet 'HEX'.

Beispiele

> 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