| 12
 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; | 
Partager