Bonjour tout le monde;
j'ai une procédure stocké qui marche bien, voici le code :
Je veux ajouter le traitement suivant :
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 ;
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.
Partager