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
| create or replace procedure augmentation_salariale (nombre_années_experience in number) is
Begin
declare
cursor cursor_1 is
select emp_id,travaille.sal_id,dep_id , classe_salariale.niveau_sal,debut from travaille, classe_salariale
where travaille.sal_id = classe_salariale.sal_id
and classe_salariale.niveau_sal < 5
and to_char(sysdate,'yyyy')-to_char(travaille.debut,'yyyy') > nombre_années_experience;
niveau_salaire classe_salariale.niveau_sal%type;
identifiant_salaire classe_salariale.sal_id%type;
identifiant_employe travaille.emp_id%type ;
identifiant_dep travaille.dep_id%type;
begin
open cursor_1;
loop
fetch cursor_1 into identifiant_employe ,identifiant_dep, identifiant_salaire, niveau_salaire, date_debut ;
exit when cursor_1%notfound ;
update travaille set emp_id= identifiant_employe,
sal_id =(select sal_id from classe_salariale where classe_salariale.niveau_sal= niveau_salaire + 1),
dep_id = identifiant_dep,
where travaille.debut= date_debut;
end loop;
close cursor_1;
end;
end;
execute augmentation_salariale(10); |
Partager