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 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| set serveroutput on ;
DECLARE
salaire_emp e_emp.salaire%TYPE ;
date_ent e_emp.dt_entree%TYPE ;
v_augm e_augmentation.augmentation% TYPE;
date_aug e_augmentation.date_augmentation%TYPE;
num_emp e_emp.no% TYPE;
dt_entree date_ent% TYPE;
nom_emp e_emp.nom% TYPE;
salaire salaire_emp% TYPE;
augmentation v_augm% TYPE;
BEGIN
nom_emp:='&nom_emp';
SELECT
e_emp.no, e_emp.nom, e_emp.salaire, e_emp.dt_entree
INTO
num_emp, nom_emp, salaire_emp, date_ent
FROM
e_emp
WHERE
e_emp.nom = nom_emp for UPDATE of e_emp.salaire;
IF
date_ent = to_date(1990,'YYYY')
THEN
dbms_output.put_line ('le test');
v_augm :=salaire * 0.5;
UPDATE e_emp set salaire = salaire + v_augm
where e_emp.nom= nom_emp;
ELSIF
date_ent = to_date(1991,'YYYY')
THEN
v_augm :=salaire * 0.25;
UPDATE e_emp set salaire = salaire + v_augm where e_emp.nom=nom_emp;
ELSIF
date_ent = to_date(1992,'YYYY')
THEN
v_augm :=salaire * 0.10;
UPDATE e_emp set salaire = salaire + v_augm where e_emp.nom=nom_emp;
ELSE v_augm := 0;
END IF ;
date_aug := sysdate;
INSERT INTO e_augmentation (no, augmentation, date_augmentation, emp_no)
VALUES
(1, v_augm, date_aug, num_emp);
COMMIT;
END; |
Partager