Bonjour,
J'ai un traitement à effectuer sur l'année en cours ainsi que la précédente.
Sur les 2 années, je répète une même liste de requête qui me donne la liste des valeurs à insérer en fonction de données dans d'autres tables.
Afin d'éviter de répéter 2 fois les mêmes requêtes, je pensais faire une boucle for mais celle-ci ne fonctionne pas.
Je ne rentre pas dans la boucle alors que mes valeurs sont bien 2011 et 2012.
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 CREATE OR REPLACE procedure calcul_co ( ... liste de paramètre ) is lAnneeA number; -- Année en cours lAnneeA1 number; -- Année précédente begin -- Récupération de l'année en cours select extract(year from sysdate),extract(year from SYSDATE-365) into lAnneeA,lAnneeA1 from dual; LOOP for i in lAnneeA..lAnneeA1 loop case i WHEN 2011 THEN DBMS_OUTPUT.PUT_LINE ('2011'); WHEN 2012 THEN DBMS_OUTPUT.PUT_LINE ('2012'); END CASE; end loop; end; end; /
Pourriez-vous, s'il vous plait, m'indiquer mon erreur quii semble simple mais que je ne trouve pas.
Cordialement
Partager