Réalisation d'un trigger de vérification de valeur
Bonjour,
Je doit réaliser un trigger qui doit vérifier l'existence ou nom d'une valeur dans une table et renvoyer un message d’erreur
Je suis partit dans la rédaction du script ci dessous:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| create or replace TRIGGER VERIF_NC
BEFORE UPDATE OF ST_ETA ON BT
for each row
DECLARE
CURSOR udi_nc IS
select gro.id_numgro from BT
left outer join EQU on BT.ID_NUMEQU = equ.id_numequ
left outer join GRO on EQU.ID_NUMGRO = gro.id_numgro
where BT.ST_ETA ='NC';
udi char(50);
numbt char(50);
BEGIN
open udi_nc;
numbt := :new.id_numbt;
select gro.id_numgro INTO udi from BT,EQU,GRO
where BT.ID_NUMEQU = equ.id_numequ and
EQU.ID_NUMGRO = gro.id_numgro and BT.ID_NUMBT = numbt;
if udi IN udi_nc then
raise_application_error (- 20002, "NC en cours");
END IF;
close udi_nc;
END; |
Je pense que cela bloque à la comparaison entre ma variable udi et les données du cuseur udi_nc.
C'est la première fois que j'utilise un curseur car l'utilisation d'une sous requête ne marche pas dans le trigger.
Pour info je débute en PL/SQL mais cela doit se voir!