[Oracle] podział transakcji

0

witam,

mam taką sytuację - jest kilkadziesiąt-kilkaset tysięcy rekordów do update'u. nie wiem ile to potrwa dlatego chciałbym co jakąś partię (np. co 1000) commitować zmiany. jak mogę to efektywnie zrobić? używam oracle 10g XE.

myślałem o tym, żeby zrobić procedurę zliczać iteracyjnie jakąś zmienną:

if (zmienna >= 1000) 
COMMIT();
end if;

ale nie jest to zbyt wydajne. jak można zatwierdzać zmiany blokami? googlałem pod hasłami : "autonomic transactions", "partial transactions" ale nie znalazłem żadnych materiałów.

proszę o pomoc

0
update tabela set cos1 = cos2 where rowid in (select rid from (select rowid rid, rownum rnum from tabela) where rnum between 1 and 100) ;

update tabela set cos1 = cos2 where rowid in (select rid from (select rowid rid, rownum rnum from tabela) where rnum between 101 and 200) ;

update tabela set cos1 = cos2 where rowid in (select rid from (select rowid rid, rownum rnum from tabela) where rnum between 201 and 300) ;

itd, ale wątpię aby było to szybkie rozwiązanie...

1 użytkowników online, w tym zalogowanych: 0, gości: 1