- Catégories :
Fonctions de chaîne et fonctions binaires (Encodage/Décodage)
TRY_BASE64_DECODE_BINARY¶
Une version spéciale de BASE64_DECODE_BINARY qui renvoie une valeur NULL si une erreur se produit pendant le décodage.
Syntaxe¶
TRY_BASE64_DECODE_BINARY(<input> [, <alphabet>])
Arguments¶
input
La chaîne base64 à convertir en type de données BINARY.
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¶
Cela renvoie une valeur BINARY
. La valeur peut être insérée dans une colonne de type BINARY
, par exemple.
Notes sur l’utilisation¶
Pour plus d’informations sur le format base64, voir base64.
Exemples¶
Ceci montre comment utiliser la fonction TRY_BASE64_DECODE_BINARY
. La fonction est utilisée dans l’instruction INSERT
pour décoder une chaîne codée en base64 en un champ BINARY ; la fonction n’est pas utilisée dans l’instruction SELECT
.
Créer une table et insérer des données :
CREATE TABLE base64 (v VARCHAR, base64_encoded_varchar VARCHAR, b BINARY); INSERT INTO base64 (v, base64_encoded_varchar, b) SELECT 'HELP', BASE64_ENCODE('HELP'), TRY_BASE64_DECODE_BINARY(BASE64_ENCODE('HELP'));Maintenant, exécutez une requête pour montrer que nous pouvons récupérer les données intactes :
SELECT v, base64_encoded_varchar, -- Convert binary -> base64-encoded-string TO_VARCHAR(b, 'BASE64'), -- Convert binary back to original value TO_VARCHAR(b, 'UTF-8') FROM base64; +------+------------------------+-------------------------+------------------------+ | V | BASE64_ENCODED_VARCHAR | TO_VARCHAR(B, 'BASE64') | TO_VARCHAR(B, 'UTF-8') | |------+------------------------+-------------------------+------------------------| | HELP | SEVMUA== | SEVMUA== | HELP | +------+------------------------+-------------------------+------------------------+