[Oracle9.]problème lors de l'utilisation d'un buffer avec BULK COLLECT
Bonjour,
pour traiter des lignes de ma table , j'utilise la BULK COLLECT pour allimenter le buffer, et je parcours le buffer pour réaliser des inserts .
Mon probleme c'est que le buffer contient les meme enregistrement lors de la premiere et la dexième itérations, ce qui donne une insertion deux fois des meme lignes
voila un extrait :
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
|
TYPE cache_tt IS TABLE OF my_table%ROWTYPE INDEX BY PLS_INTEGER;
my_cache cache_tt;
l_row PLS_INTEGER;
...
begin
... remplisssage de la table my_table
WHILE performed LOOP
performed :=FALSE;
SELECT * BULK COLLECT INTO my_cache FROM my_table WHERE status = 0 AND ROWNUM<5;
if my_cache.count > 0 then
DBMS_OUTPUT.PUT_LINE('Count my_cache :'|| my_cache.count);
FOR l_row IN my_cache.FIRST .. my_cache.LAST
LOOP
performed := TRUE;
... procedure_insert(my_cache(l_row).co_id ....)
...
END LOOP;
COMMIT;
end if;
END LOOP; |
il insert deux fois les 4 premières lignes !! puis une fois le reste ..:roll:
quelqu'un à une idée !!