Bonjour,

Voici mon problème :

J’aimerais définir un domaine de valeurs pour un champ de table. Certaines valeurs possèdent des caractères accentués.

Lors de la génération du DDL par Elixir, une conversion est faite sur les valeurs fournies faisant ainsi que les caractères accentués ne correspondent plus.

Voici mon code test :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# -*- coding: iso-8859-1 -*-
 
from elixir import *
 
class TestEnum(Entity):
    myEnum = Field(Unicode(100),\
         Enum(u'avec é', 
              u'avec è', 
              u'avec à'),\
         colname='MY_ENUM')
 
if __name__ == '__main__':
    metadata.bind = 'oracle://..:..@..'
    metadata.bind.echo = True
 
    setup_all()
    drop_all()
    create_all()


Voici le DDL généré :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
CREATE TABLE "__main___testenum" (
    id INTEGER NOT NULL, 
    "MY_ENUM" NVARCHAR2(100), 
    PRIMARY KEY (id), 
    CHECK ("MY_ENUM" IN ('avec é', 'avec è', 'avec à '))
)

En corrigeant à la main le DDL et en créant la table, tout devient correct dans la BD Oracle

Existe’-il un paramètre de configuration qui permettrait de corriger cette situation???

Peut-être un Bogue avec Elixir???

Merci pour vos réponses.