bonjour tout le monde ;

j'ai une table dont je voulait faire un filtrage des donnée j'explique :
1-je fais appel a la fonction truncate,
2 -insertion des donnée voulu dans la meme table ,
tt ca est dans la meme bloc plslq.

le problème est que je me trouve avec une table vide après l'exécution de bloc.

voici mon 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
CREATE OR REPLACE PROCEDURE filters
 IS
   CURSOR filter_cur
   IS
      SELECT   idtier, MAX (referencepiece), MAX (datedelivrance),
               MAX (dateexpiration), MAX (naturepiece), MAX (paysdelivrance),
               MAX (nompersonne), MAX (prenompersonne), MAX (datenaissance),
               MAX (paysnaisance), MAX (sigle), MAX (datecreation),
               MAX (raisonsociale), MAX (activiteprincipale),
               MAX (profession), MAX (addc), MAX (categoeirsp),
               MAX (tranche), MAX (addp), MAX (nationnalite),
               MAX (residence)
          FROM nfiabilisation
		  GROUP BY idtier;
 
   filter_rec   nfiabilisation%ROWTYPE;
 
BEGIN
 
 
   EXECUTE  IMMEDIATE 'truncate  table nfiabilisation reuse storage ';
 
   OPEN filter_cur;
   LOOP 
      FETCH filter_cur
       INTO filter_rec;
     EXIT WHEN filter_cur%NOTFOUND;
      --------
      INSERT INTO nfiabilisation VALUES filter_rec;
 
   END LOOP;
 
   CLOSE filter_cur;
 
   COMMIT;
EXCEPTION
   WHEN NO_DATA_FOUND
   THEN
      raise_application_error (-20992, 'no data found') ;
END filters;
/