Syntaxe varchar(20) et varchar2(20 char)
Bonjour.
je suis confronté à un petit pb de compatibilité entre les bases de données.
les développeurs utilisent sur leur poste la base Derby (ce qui permet d'avoir des tests unitaire indépendant de toute infrascruture)
et les plateforme de d'intégration recette et production utilisent Oracle
nous avons de très nombreux petits projets qui ont tous au moins 1 script sql associé.
nous aimerions éviter d'avoir à écrire plusieurs fois ces scripts (1pour derby 1 pour oracle)
le problème vient de varchar
derby supporte SQL92T soit donc les syntaxe
Code:
1 2 3
| CHARACTER VARYING(14),
CHAR VARYING(14),
VARCHAR(14) |
oracle lui utilise
Code:
1 2 3
| CHARACTER VARYING(14 CHAR),
CHAR VARYING(14 CHAR),
VARCHAR2(14 CHAR) |
juste pour ce détail il m'est pour le moment impossible d'avoir un script unique pour la création des tables. il me faut systématiquement une version oracle et une version derby.
si j'utilise la syntaxe de derby sur oracle j'obtiens
Code:
1 2 3
| CHARACTER VARYING(14 BYTE),
CHAR VARYING(14 BYTE),
VARCHAR2(14 BYTE) |
Or étant en utf-8 cela ne corresponds pas à mon besoin. en effet "éosine aqueuse" par exemple fait 14 chars mais 15 bytes.
existe-t-il un moyen de paramétrer mon schémas oracle pour que
Code:
1 2 3
| CHARACTER VARYING(14),
CHAR VARYING(14),
VARCHAR(14) |
crée par défaut des chars et non des bytes ?
Merci
A+JYT