CREATE [ DEFAULT ] CONVERSION nom FOR codage_source TO codage_dest FROM fonction
CREATE CONVERSION définit une nouvelle conversion entre les encodages de caractères. De plus, les conversions marquées DEFAULT peuvent être utilisées pour automatiser une conversion d'encodage entre le client et le serveur. Pour cela, deux conversions, de l'encodage A vers l'encodage B et de l'encodage B vers l'encodage A, doivent être définies.
Pour créer une conversion, il est nécessaire de posséder les droits EXECUTE sur la fonction et CREATE sur le schéma de destination.
La clause DEFAULT indique une conversion par défaut entre l'encodage source et celui de destination. Il ne peut y avoir, dans un schéma, qu'une seule conversion par défaut pour un couple d'encodages.
Le nom de la conversion. Il peut être qualifié du nom du schéma. Dans la cas contraire, la conversion est définie dans le schéma courant. Le nom de la conversion est obligatoirement unique dans un schéma.
Le nom de l'encodage source.
Le nom de l'encodage destination.
La fonction utilisée pour réaliser la conversion. Son nom peut être qualifié du nom du schéma. Dans le cas contraire, la fonction est recherchée dans le chemin.
La fonction a la signature suivante :
conv_proc( integer, -- ID encodage source integer, -- ID encodage destination cstring, -- chaîne source (chaîne C terminée par un caractère nul) internal, -- destination (chaîne C terminée par un caractère nul) integer -- longueur de la chaîne source ) RETURNS void;
DROP CONVERSION est utilisé pour supprimer une conversion utilisateur.
Il se peut que les droits requis pour créer une conversion soient modifiées dans une version ultérieure.
Création d'une conversion de l'encodage UTF8 vers l'encodage LATIN1 en utilisant mafonc :
CREATE CONVERSION maconv FOR 'UTF8' TO 'LATIN1' FROM mafonc;