Catégories :

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

TRY_BASE64_DECODE_STRING

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

BASE64_DECODE_STRING et TRY_BASE64_DECODE_STRING sont des fonctions « réciproques » (ou « inverses ») de BASE64_ENCODE.

Syntaxe

TRY_BASE64_DECODE_STRING(<input> [, <alphabet>])
Copy

Arguments

input

La chaîne encodée en base64 à décoder en chaîne normale.

alphabet

Une chaîne composée de trois caractères ASCII maximum :

  • Les deux premiers caractères de la chaîne spécifient les deux derniers caractères (index 62 et 63) de l’alphabet utilisé pour coder l’entrée :

    • A à Z (index 0-25).

    • a à z (index 26-51).

    • 0 à 9 (index 52-61).

    • + et / (index 62, 63).

    Valeurs par défaut : + et /

  • Le troisième caractère de la chaîne spécifie le caractère utilisé pour le remplissage.

    Par défaut : =

Renvoie

Une chaîne.

Notes sur l’utilisation

Pour plus d’informations sur le format base64, voir base64.

Exemples

Ceci montre comment utiliser la fonction et que TRY_BASE64_DECODE_STRING est l’inverse de BASE64_ENCODE :

SELECT TRY_BASE64_DECODE_STRING(BASE64_ENCODE('HELLO'));
+--------------------------------------------------+
| TRY_BASE64_DECODE_STRING(BASE64_ENCODE('HELLO')) |
|--------------------------------------------------|
| HELLO                                            |
+--------------------------------------------------+
Copy

Cela montre un exemple plus réaliste :

Créez une table et des données :

CREATE TABLE base64 (v VARCHAR, base64_string VARCHAR, garbage VARCHAR);
INSERT INTO base64 (v, base64_string, garbage) 
  SELECT 'HELLO', BASE64_ENCODE('HELLO'), '127';
Copy

Interrogez les données à l’aide de la fonction TRY_BASE64_DECODE_STRING :

SELECT v, base64_string, TRY_BASE64_DECODE_STRING(base64_string), TRY_BASE64_DECODE_STRING(garbage) FROM base64;
+-------+---------------+-----------------------------------------+-----------------------------------+
| V     | BASE64_STRING | TRY_BASE64_DECODE_STRING(BASE64_STRING) | TRY_BASE64_DECODE_STRING(GARBAGE) |
|-------+---------------+-----------------------------------------+-----------------------------------|
| HELLO | SEVMTE8=      | HELLO                                   | NULL                              |
+-------+---------------+-----------------------------------------+-----------------------------------+
Copy