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
|
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;
-- le deuxième curseur correspondant à la deuxième requête
CURSOR C_BIS (param1, param2) is
select dateheuredebut,dateheurefin into DHD_Pause,DHF_Pause from kheops_heures_operateurs
where datedemandenum = param1 and codeemploye = param2
and not exists (select 'f' from kheops_cdc_horsproduction where kheops_cdc_horsproduction.code_cdc=kheops_heures_operateurs.code_cdc);
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;
-- ouverture du deuxième curseur avec les param1 et param2 correspondant aux MaDate, MonEmploye
open C_BIS (Madate,MonEmploye);
LOOP
fetch C_bis into var1, var2 ;
exit when c_Bis%notfound ;
dbms_output.put_line('affichage de resultats des var1, var2);
end loop;
close C_Bis ;
END LOOP;
CLOSE MESEMPLOYES;
END; |