Salut à tous,
Alors je vous préviens, je débute à PL/SQL c'est mon premier triggermais comme le sujet l'indique il est pas encore au point... ^^
Alors ce que je dois faire:
Le déclencheur doit en cas d'ajout ou de modification vérifier les informations suivantes:
- que pour le même NO de contrat à la même date qu'il n'y ai pas un lieu identique à deux horaire différent.
- il doit bloquer l'exécution de la requête dans le cas contraire...
La table en question:
Mon déclencheur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 create table PARCOURS ( NO_CONTRAT varchar(32) not null, NO_PARCOURS number not null, DATE_PA date not null, HEURE_PA varchar(5) not null, LIEU_PA varchar(32) not null, constraint PK_PARCOURS primary key (NO_CONTRAT, NO_PARCOURS), constraint FK_PA_NO_CONTRAT foreign key (NO_CONTRAT) references CONTRAT(NO_CONTRAT) );
Merci de votre aide!
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 create or replace trigger VERIF_HEURE_LIEU_DEPART before insert or update on PARCOURS for each row declare LIEU varchar(32); CONTRAT varchar(32); DATE_O date; HEURE varchar(5); begin select NO_CONTRAT, DATE_PA, LIEU_PA, HEURE_PA into CONTRAT, DATE_O, LIEU, HEURE from PARCOURS; if (:new.LIEU_PA = LIEU and :new.NO_CONTRAT = CONTRAT and :new.DATE_PA = DATE_O and :new.HEURE_PA <> HEURE) then raise_application_error(-20001,'Ce parcours existe avec un horaire différent.'); end if end;
Bye
Partager