Bonjour tout le monde;
j'ai une procédure stocké qui marche bien, voici le code :

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
47
48
49
create or replace procedure DeleteRecensementDiseVides is
 
--*******************************DECLARATIONS DES VARIABLES***************************--    
 
    cursor CursorFlux is select FLUXRECENSEMENTDISE.ID FROM FLUXRECENSEMENTDISE;--curseur qui contient les id de la table FLUXRECENSEMENTDISE.
	  cursor CursorRecensement is select RECENSEMENTDISE.NUMEROORDRE FROM RECENSEMENTDISE;--curseur qui contient les NUMERO D ORDRE de la table RECENSEMENTDISE.
    fluxType FLUXRECENSEMENTDISE.ID%type;
    recenesementType RECENSEMENTDISE.NUMEROORDRE%type;
    nbrEnregistrement number(5);
    incr NUMBER := 0;
 
--**********************************DEBUT DE TRANSACTION*******************************--    
begin
dbms_output.enable();
--*****************************SUPPRESSION DES FLUX N AYANT PAS D ABBONEOBS***********--
--*******POUR CHAQUE FLUX QUI N A PAS D ABBONEOBS:************************************--
--*******1:SUPPRIMER L ENREGISTREMENT DE LA TABLE ERREURRECENSEMENTDISE***************--
--*******2:SUPPRIMER L ENREGISTREMENT DE LA TABLE ERREURLIGNE*************************--
--*******3:SUPPRIMER L ENREGISTREMENT DE LA TABLE FLUXRECENSEMENTDISE*****************--
loop
    open CursorFlux;
    loop
        fetch CursorFlux into fluxType;
        select count(*) into nbrEnregistrement FROM ABONNEOBS ABN where  ABN.FLUXRECENSEMENT =fluxType;
          IF nbrEnregistrement = 0 THEN
             delete FROM ERREURRECENSEMENTDISE ERR WHERE ERR.FLUXRECENSEMENTDISE = fluxType;
             delete from ERREURLIGNE ERR where ERR.FLUXRECENSEMENTDISE=fluxType;
             delete FROM FLUXRECENSEMENTDISE WHERE FLUXRECENSEMENTDISE.ID = fluxType;
          END IF;
        exit when CursorFlux%notfound;
    END LOOP;
    close CursorFlux;
    commit ;
--*******************************SUPPRESSION DES RECENSEMENT DISE N AYANT PAS DES FLUX*******-- 
   open CursorRecensement;
    loop
        fetch CursorRecensement into recenesementType;
        select count(*) into nbrEnregistrement FROM FLUXRECENSEMENTDISE flx where  flx.numeroordre =recenesementType;
          IF nbrEnregistrement = 0 THEN
             delete FROM RECENSEMENTDISE rec WHERE rec.numeroordre =recenesementType ;
          END IF;
        exit when CursorRecensement%notfound;
    END LOOP;
    close CursorRecensement;
    commit ;
   incr:=incr+1;
   exit when incr>1;
end loop;
End ;
Je veux ajouter le traitement suivant :

Lorsque on exécute cette procédure (je la lance manuellement), je veux mettre à jour une colonne 'dateExécution' dans une table FREQUENCE, cette colonne doit prendre comme valeur la date de derniere exécution ,
par exemple : si je lance la procédure le 01/12/2008 la colonne de la table frequence doit avoir la valeur 01/12/2008.

merci de m'indiquer comment faire cela?
par avance merci de votre aide.