PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 14.15 » Référence » Commandes SQL » CREATE CONVERSION

CREATE CONVERSION

CREATE CONVERSION — Définir une nouvelle conversion d'encodage

Synopsis

CREATE [ DEFAULT ] CONVERSION nom
    FOR codage_source TO codage_dest FROM nom_fonction
  

Description

CREATE CONVERSION définit une nouvelle conversion entre les encodages de caractères.

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.

Paramètres

DEFAULT

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.

nom

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.

codage_source

Le nom de l'encodage source.

codage_dest

Le nom de l'encodage destination.

nom_fonction

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
    boolean   -- si true, ne renvoie pas une erreur si la conversion échoue
) RETURNS integer;

La valeur renvoyée est le nombre d'octets de la source qui ont été convertis avec succès. Si le dernier argument vaut false, la fonction doit renvoyer une erreur en cas d'entrée invalide, et la valeur de retour est toujours égale à la longueur de la chaîne source.

Notes

Ni l'encodage source ni l'encodage destination ne peuvent être SQL_ASCII, car le comportement du serveur pour les cas impliquant l'encodage SQL_ASCII « encoding » est codé en dur.

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.

Exemples

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;
   

Compatibilité

CREATE CONVERSION est une extension PostgreSQL. Il n'existe pas d'instruction CREATE CONVERSION dans le standard SQL. Par contre, il existe une instruction CREATE TRANSLATION qui est très similaire dans son but et sa syntaxe.