Bonjour,

Je cherche à faire un curseur dans un curseur.
Le but est de parcourir une table, qui passera un parametre à 2 autres tables ensuite que je parcourai ensuite.

Je ne vois pas comment m'y prendre...

Merci de votre aide.


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
DECLARE
 
-- Mes variables
MonEmploye kheops_heures_operateurs.codeemploye%TYPE;
MaDate kheops_heures_operateurs.datedemandenum%TYPE;
 
DHD_Pause kheops_heures_operateurs.dateheuredebut%TYPE;
DHF_Pause kheops_heures_operateurs.dateheurefin%TYPE;
 
-- j'ai la liste des operateurs de la journée
CURSOR MESEMPLOYES IS
select datedemandenum,codeemploye from kheops_heures_operateurs where datedemandenum = 20150630 group by datedemandenum,codeemploye;
 
BEGIN
 
  OPEN MESEMPLOYES;
 
    LOOP
 
      -- passage de parametre date et employe en lisant le curseur
     FETCH MESEMPLOYES INTO MaDate,MonEmploye;
 
     DBMS_OUTPUT.PUT_LINE(MonEmploye||'    '||MaDate);
     -- Test si je n'ai plus rien a lire
     EXIT WHEN MESEMPLOYES%NOTFOUND;
 
  -- je prends tous les postes de production sur un operateur
   select dateheuredebut,dateheurefin into DHD_Pause,DHF_Pause from kheops_heures_operateurs
   where datedemandenum = MaDate and codeemploye = MonEmploye
   and not exists (select 'f' from kheops_cdc_horsproduction where kheops_cdc_horsproduction.code_cdc=kheops_heures_operateurs.code_cdc);
 
 
 
    END LOOP;
 
  CLOSE MESEMPLOYES;
 
END;