ci-joint un imprime écran de ma base de données Nom : code.JPG
Affichages : 120
Taille : 151,4 Ko

Bonjour tout monde,
Je souhaiterais savoir quelle est la syntaxe correcte quand on a un attribut (date_entree) qui est de type date (ex : 13/12/14)

Je veux faire le test sur l'année
si date_entree = 1990 faire
si date_entree = 1992 faire
...
..etc
Le problème c'est qu'il m’insère les valeurs dans la table e_aumentation (no, date-augmentation et emp_no) mais pas l'augmentation, en plus j'ai l'impression qu'il ne fait même pas le test.
v_augm : valeur d'augmentation

Voici mon code, si vous pourriez m'aider SVP c'est urgent et merci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;