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 50 51 52 53 54 55 56 57 58 59 60
| DECLARE
CURSOR C1 IS
SELECT rowid
WHERE
..
for update skip locked;
BEGIN
OPEN C1;
loop
fetch C1 BULK COLLECT into var LIMIT 1000;
if (var.COUNT != 0) then
for j in 1..var.COUNT loop
begin
insert into table_archive
(select ...
where rowid = var(j));
delete from table where rowid = var(j);
exception
when others then
NULL;
dbms_output.put_line('erreur suppression');
end;
end loop;
commit;
end if;
exit when C_stocouch%NOTFOUND;
end loop;
CLOSE C1;
EXCEPTION
WHEN OTHERS THEN
CLOSE C_stocouch;
END; |