SQL CONVERT() (PostgreSQL et Oracle)

La fonction SQL CONVERT() utilisé sous PostgreSQL ou Oracle permet de changer l’encodage d’une chaîne de caractère. La fonction permet par exemple de convertir un texte en UTF-8 en un texte Latin-1, c’est à dire en ISO-8859-1.

Attention : la fonction CONVERT() utilisé dans les Systèmes de Gestion de Base de Données (SGBD) MySQL et SQL Server ne servent pas à la même chose. Dans ces SGBD, la fonction permet de convertir un type de données en un autre, par exemple pour convertir une donnée FLOAT en INTEGER.

Syntaxe

La fonction s’utilise dans n’importe quelle requête SQL en respectant la syntaxe suivante :

SELECT CONVERT( texte, encodage_source, encodage_fin);

Le premier paramètre correspond à la chaîne de caractère à convertir, avec un type tel qu’un VARCHAR. Le deuxième paramètre correspond à l’encodage de cette chaîne de caractère. L’encodage doit correspondre pour que la fonction réalise le changement d’encodage convenablement. Le dernier paramètre correspond à l’encodage souhaité.

Important : les mots-clés à utiliser pour définir la source d’encodage sont défini dans les documentations officielles de PostgreSQL et de Oracle. Ces 2 système utilisent des mots-clés différents pour nommer les encodages.

Exemple

La requête ci-dessous est un exemple fictif pour convertir une chaîne de caractère sous PostgreSQL de l’encodate UTF-8 à un encodage Latin-1.

SELECT CONVERT('texte en utf8', 'UTF8', 'LATIN1');
-- résultat : 'texte en utf-8'

Ce résultat ne permet pas de constater visuellement d’une différence. Pour tester convenablement cette fonction il est possible de tester avec certains caractères spéciaux tels que les caractères accentués.

En savoir plus

Partager