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 27 28 29 30 31 32
|
create or replace
TRIGGER TRGCATEGORIE
AFTER UPDATE ON INFOGENERALES
declare
annee NUMBER(4,0);
UneCategorie char(2);
CURSOR CurNageur is Select * from nageurs;
UnNageur nageurs%rowtype;
BEGIN
Select anneeencours into annee
from infogenerales;
open CurNageur;
FETCH CurNageur INTO unnageur;
while CurNageur%Found LOOP
SELECT categories.categorie into unecategorie
from categories, nageurs
where nom = unnageur.nom
and agemin <= (annee - UnNageur.anneenaiss)
and agemax >= (annee - UnNageur.anneenaiss);
update nageurs set categorie = unecategorie where nrligue like unnageur.nrligue;
FETCH CurNageur into unnageur;
end loop;
close CurNageur;
EXCEPTION
WHEN INVALID_CURSOR
THEN DBMS_OUTPUT.PUT_LINE('Erreur Curseur CurEmp');
WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SQLERRM);
END; |