Catégories :

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

BASE64_ENCODE

Encode l’entrée (chaîne ou binaire) en utilisant l’encodage Base64.

Voir aussi :

BASE64_DECODE_BINARY , BASE64_DECODE_STRING

Syntaxe

BASE64_ENCODE( <input> [ , <max_line_length> ] [ , <alphabet> ] )

Arguments

Obligatoire :

entrée

Une chaîne ou une expression binaire à encoder.

Facultatif :

longueur_ligne_max

Un entier positif spécifiant le nombre maximal de caractères sur une seule ligne de la sortie.

Par défaut : 0 (spécifie qu’aucun saut de ligne ne sera inséré, c’est-à-dire que la longueur de ligne maximale est infinie)

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

Renvoie une chaîne (que l’entrée soit une chaîne ou BINARY).

Notes sur l’utilisation

  • Les caractères de la chaîne alphabet sont analysés en ce qui concerne leur position ; pour spécifier des caractères différents à la deuxième ou troisième position de la chaîne, vous devez spécifier explicitement tous les caractères précédents, même si vous souhaitez utiliser les valeurs par défaut.

    Par exemple :

    • +$ spécifie la valeur par défaut (+) pour l’index 62 et un caractère différent ($) pour l’index 63 ; aucun caractère n’est explicitement spécifié pour le remplissage, donc le caractère par défaut (=) est utilisé.

    • +/% spécifie les valeurs par défaut (+ et /) pour les index 62 et 63 et spécifie un caractère différent (%) pour le remplissage.

  • Si vous spécifiez une chaîne alphabet pour encoder entrée, la même chaîne doit être utilisée pour décoder entrée.

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

Renvoie

Cela renvoie une chaîne contenant uniquement les caractères utilisés pour l’encodage base64.

Exemples

Encodez une chaîne en utilisant Base64 :

SELECT BASE64_ENCODE('Snowflake');

----------------------------+
 BASE64_ENCODE('SNOWFLAKE') |
----------------------------+
 U25vd2ZsYWtl               |
----------------------------+

Encodez une chaîne contenant des caractères non ASCII en utilisant Base64 avec “$” à la place de “+” pour l’encodage, puis indiquez la chaîne avec une longueur de ligne maximale de 32 :

SELECT BASE64_ENCODE('Snowflake ❄❄❄ Snowman ☃☃☃',32,'$');

---------------------------------------------------+
 BASE64_ENCODE('SNOWFLAKE ❄❄❄ SNOWMAN ☃☃☃',32,'$') |
---------------------------------------------------+
 U25vd2ZsYWtlIOKdhOKdhOKdhCBTbm93                  |
 bWFuIOKYg$KYg$KYgw==                              |
---------------------------------------------------+

Cela montre un autre exemple d’utilisation de BASE64_ENCODE (et aussi de BASE64_DECODE_STRING) :

Créez une table et des données :

CREATE OR REPLACE TABLE base64_table (v VARCHAR, base64_string VARCHAR);
INSERT INTO base64_table (v) VALUES ('HELLO');
UPDATE base64_table SET base64_string = BASE64_ENCODE(v);

Exécuter maintenant une requête en utilisant BASE64_DECODE_STRING :

SELECT v, base64_string, BASE64_DECODE_STRING(base64_string) 
    FROM base64_table;
+-------+---------------+-------------------------------------+
| V     | BASE64_STRING | BASE64_DECODE_STRING(BASE64_STRING) |
|-------+---------------+-------------------------------------|
| HELLO | SEVMTE8=      | HELLO                               |
+-------+---------------+-------------------------------------+