Fonction try_to_binary

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

Retourne expr casté en BINARY en fonction de fmt, ou NULL si l’entrée n’est pas valide.

Syntaxe

try_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 valeur hexadécimale bien formée, la fonction retourne NULL. Utilisez to_binary pour retourner une erreur à 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.

  • '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