Problème sur une utilisation Trigger/sequence
Bonjour,
Je suis actuellement en train de concevoir un Datawarehouse sous Oracle, et j'ai quelques petites suprises lorsque je remplis certaines tables.
Afin d'avoir une clef unique pour chacune des mes entrées, j'utilise un trigger couplé à une sequence pour de chaque nouvelle ligne entrée (via un ETL : Talend)
Dans mon exemple, ma table est : DIMCTR
Ci-dessous le code du trigger :
Code:
1 2 3 4 5 6 7 8 9
| CREATE OR REPLACE TRIGGER TBI_IdtDimCtr
BEFORE INSERT
ON DIMCTR
FOR EACH ROW
BEGIN
SELECT SEQ_IdtDimCtr.NEXTVAL
INTO :NEW.IdtDimCtr
FROM DUAL;
END; |
et ci-dessous, la sequence qui lui est liée :
Code:
1 2 3 4 5 6 7
| CREATE SEQUENCE SEQ_IdtDimCtr
START WITH 1
MAXVALUE 999999999999999999999999
MINVALUE 1
NOCYCLE
NOCACHE
NOORDER; |
Maintenant, le problème que j'ai, c'est que, si la plus part du temps, ca marche, je n'ai aucun soucis, pour certaines tables (dont celle la en exemple) ma sequence commence à 10001 et surtout, elle saute des valeur lorsque je rajoute des valeurs par la suite en passant par exemple de 70000 à 130000.
Voila, je sais pas si vous avez besoin de plus d'éléments pour savoir d'où ca vient... peut etre que c'est le moteur d'oracle qui pete un cable tout simplement.
J'attends vos commentaires.
Merci d'avance
Steven
PS : je ne suis pas un pro de SQL, les codes proviennent du net et peut etre que l'erreur vient de là, mais je ne sais pas la déceler !