- Catégories :
TRY_TO_BINARY¶
Une version spéciale de TO_BINARY qui effectue la même opération (c’est-à-dire convertit une expression d’entrée en valeur binaire), mais avec une prise en charge du traitement des erreurs (c’est-à-dire que si la conversion ne peut pas être effectuée, elle retourne une valeur NULL au lieu de produire une erreur).
Pour plus d’informations, voir :
Syntaxe¶
TRY_TO_BINARY( <string_expr> [, '<format>'] )
Arguments¶
Obligatoire :
string_expr
Une expression de chaîne.
Facultatif :
format
Le format binaire pour la conversion : HEX, BASE64, ou UTF-8 (voir Binary Input and Output). 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.
Notes sur l’utilisation¶
Ne fonctionne que pour les expressions de chaîne.
Si le
format
est spécifié mais n’est pas HEX, BASE64 ou UTF-8, le résultat sera une valeur NULL.
Exemples¶
Cela montre comment utiliser la fonction TRY_TO_BINARY
lors du chargement de chaînes codées en hexadécimal dans une colonne BINARY :
Créez et remplissez une table :
CREATE TABLE strings (v VARCHAR, hex_encoded_string VARCHAR, b BINARY); INSERT INTO strings (v) VALUES ('01'), ('A B'), ('Hello'), (NULL); UPDATE strings SET hex_encoded_string = HEX_ENCODE(v); UPDATE strings SET b = TRY_TO_BINARY(hex_encoded_string, 'HEX');Interrogez la table en appelant TRY_TO_BINARY() :
SELECT v, hex_encoded_string, TO_VARCHAR(b, 'UTF-8') FROM strings ORDER BY v ; +-------+--------------------+------------------------+ | V | HEX_ENCODED_STRING | TO_VARCHAR(B, 'UTF-8') | |-------+--------------------+------------------------| | 01 | 3031 | 01 | | A B | 412042 | A B | | Hello | 48656C6C6F | Hello | | NULL | NULL | NULL | +-------+--------------------+------------------------+