cursor + truncate +insert
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:
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;
/ |