Catégories :

Fonctions de conversion

TO_BINARY

Convertit l’expression d’entrée en valeur binaire. Pour une entrée NULL, la sortie est NULL.

Voir aussi :

Syntaxe

TO_BINARY( <string_expr> [, '<format>'] )
TO_BINARY( <variant_expr> )

Renvoie

Le type de retour est BINARY.

Arguments

Obligatoire :

expr_chaine

Une expression de chaîne.

Facultatif :

format

Le format binaire pour la conversion : HEX, BASE64, ou UTF-8 (voir Entrée et sortie binaires). La valeur par défaut est la valeur du paramètre de session BINARY_INPUT_FORMAT. Si ce paramètre n’est pas défini, la valeur par défaut est HEX.

Renvoie

Renvoie une valeur de type BINARY.

Exemples

Ces exemples montrent la sortie lorsque TO_BINARY est appelé.

Cet exemple montre comment convertir un VARCHAR en BINARY, puis le récupérer dans sa forme d’origine (VARCHAR).

Créez et remplissez une table :

CREATE TABLE binary_test (v VARCHAR, b BINARY);
INSERT INTO binary_test(v) VALUES ('SNOW');

Convertissez VARCHAR en BINARY :

UPDATE binary_test SET b = TO_BINARY(HEX_ENCODE(v), 'HEX');

Exécutez une requête et affichez la sortie :

SELECT v, HEX_DECODE_STRING(TO_VARCHAR(b, 'HEX')) FROM binary_test;
+------+-----------------------------------------+
| V    | HEX_DECODE_STRING(TO_VARCHAR(B, 'HEX')) |
|------+-----------------------------------------|
| SNOW | SNOW                                    |
+------+-----------------------------------------+

Cet exemple montre comment convertir une chaîne de caractères UTF-8 en BINARY. Notez que par défaut, SNOWSQL affiche les valeurs BINARY sous forme de chaîne de chiffres hexadécimaux, pas au format UTF-8 ni au format interne BINARY.

SELECT TO_BINARY('SNOW', 'utf-8');
+----------------------------+
| TO_BINARY('SNOW', 'UTF-8') |
|----------------------------|
| 534E4F57                   |
+----------------------------+

Cet exemple est identique à l’exemple précédent, sauf que nous convertissons explicitement la sortie en chiffres hexadécimaux, de sorte qu’il soit plus évident que la sortie est une chaîne contenant des chiffres hexadécimaux :

SELECT TO_VARCHAR(TO_BINARY('SNOW', 'utf-8'), 'HEX');
+-----------------------------------------------+
| TO_VARCHAR(TO_BINARY('SNOW', 'UTF-8'), 'HEX') |
|-----------------------------------------------|
| 534E4F57                                      |
+-----------------------------------------------+