Partager via


Fonction to_binary

S’applique à : coche marquée oui Version préliminaire de Databricks SQL coche marquée oui Databricks Runtime 11.3 LTS et versions ultérieures

Retourne expr casté en BINARY en fonction de fmt.

Syntaxe

to_binary(expr [, fmt] )

Arguments

  • expr : expression STRING à caster.
  • fmt : littéral STRING décrivant comment interpréter expr.

Retours

Une valeur BINARY.

Notes

Si fmt est fourni, il doit avoir l’une des valeurs suivantes (sans respect de la casse) :

  • 'HEX'

    expr doit être une chaîne hexadécimale. Chaque caractère doit être un chiffre hexadécimal, et il doit y avoir un nombre pair de chiffres. Le résultat est la représentation binaire de la chaîne hexadécimale.

    Si expr n’est pas une chaîne hexadécimale valide, Azure Databricks retourne une erreur CONVERSION_INVALID_INPUT. Utilisez try_to_binary pour retourner une valeur NULL à la place.

  • 'BASE64'

    expr doit être une chaîne encodée RFC 4648 §4 : base64 (standard). Le résultat est la donnée binaire décodée. Sous RFC 4648 §4, toute chaîne base64 mal formée entraîne une erreur CONVERSION_INVALID_INPUT.

  • 'UTF-8' ou 'UTF8'

    expr est interprété comme une chaîne UTF-8. Le résultat est la représentation binaire de la chaîne.

La valeur par défaut de fmt est 'HEX'.

Exemples

> 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