Catégories :

Fonctions de chaîne et fonctions binaires (Encodage/Décodage)

TRY_HEX_DECODE_BINARY

Une version spéciale de HEX_DECODE_BINARY qui renvoie une valeur NULL si une erreur se produit pendant le décodage.

Syntaxe

TRY_HEX_DECODE_BINARY(<input>)

Arguments

entrée

Une expression de chaîne contenant uniquement des chiffres hexadécimaux. En règle générale, cette chaîne d’entrée est générée en appelant la fonction HEX_ENCODE.

Renvoie

Une valeur BINARY pouvant, par exemple, être insérée dans une colonne de type BINARY.

Exemples

Ceci montre comment utiliser la fonction TRY_HEX_DECODE_BINARY (notez que la fonction est utilisée dans l’instruction INSERT pour décoder en un champ BINARY ; la fonction n’est pas utilisée dans l’instruction SELECT) :

Créer une table et des données :

CREATE TABLE hex (v VARCHAR, b BINARY);
INSERT INTO hex (v, b)
   SELECT 'ABab', 
     -- Convert string -> hex-encoded string -> binary.
     TRY_HEX_DECODE_BINARY(HEX_ENCODE('ABab'));

Maintenant, exécutez une requête pour montrer que nous pouvons récupérer les données intactes :

SELECT v, b, 
    -- Convert binary -> hex-encoded-string -> string.
    TRY_HEX_DECODE_STRING(TO_VARCHAR(b)) 
  FROM hex;

Sortie :

+------+----------+--------------------------------------+
| V    | B        | TRY_HEX_DECODE_STRING(TO_VARCHAR(B)) |
|------+----------+--------------------------------------|
| ABab | 41426162 | ABab                                 |
+------+----------+--------------------------------------+