Vous n'êtes pas identifié(e).
Pages : 1
Bonjour;
je suis entrain de miger une base de données oracle qui contient pas mal de tables partitionnées,
après migration j'ai constatés que les contrainte check sont mal traduite en vérifiant dans les fichiers de sorties
sous oracle,la table client contient 10 partition:
partition1 => higt_value: 15000
partition2=> higt_value: 16000
.
.
partition10 =>hiht_value:maxvalue
ora2pg a généré le code suivant:
CREATE TABLE CLIENT1( CHECK (
CUST_ID <= 15000
) ) INHERITS (CLIENT);
CREATE TABLE CLIENT2 ( CHECK (
CUST_ID > 15000 AND CUST_ID <= 16000
) ) INHERITS (CLIENT);
CREATE TABLE CLIENT3 ( CHECK (
CUST_ID > 16000 AND CUST_ID <= 17000
….
est ce que c'est l'une des lacunes d'ora2pg ou bien j'ai mal configuré l'outil.
Merci à l'avance
Hors ligne
Je n'ai jamais eu à utiliser ora2pg avec des tables partitionnées Oracle, je pourrais donc difficilement vous répondre. Ceci dit, à moins de ne pas comprendre ce que high_value veut dire, j'ai l'impression que le code est bon. Mais bon, le mieux est certainement de demander à son auteur, Gilles Darold.
Guillaume.
Hors ligne
high_value permet de spécifier la valeur maximale de la clé de partitionnement d'une partition dans le cas des partitions par intervalle ( range).
sous oracle si une table est partitioné par intervalle alors chaque partition est définis par high_value , cette valeur n'est pas incluse dans la partition elle même mais dans la partition suivante.
ce que je ne retrouve pas dans le code généré par ora2pg,
dans mon cas ora2pg inclue cette valeur dans la partition elle même, avec inférieur ou égale (CUST_ID <= 15000)
Hors ligne
C'est certainement une information que Gilles n'a pas. Comme je le disais précédemment, mieux vaut lui envoyer un mail pour qu'il corrige ce bug.
Guillaume.
Hors ligne
Bonjour,
Le problème vient d'être corrigé. Merci d'utiliser le code en développement sur https://github.com/darold/ora2pg
Gilles.
http://www.dalibo.com
Hors ligne
Merci pour la réactivité de Gilles
Hors ligne
Pages : 1