Oracle
 sql >> Base de données >  >> RDS >> Oracle

Interaction du verrou SELECT FOR UPDATE avec le curseur et le batch DML

on dirait que le problème est que vous devez supprimer des millions de lignes et que vous voulez donc le faire en baches

si c'est le cas, cela pourrait fonctionner pour vous - il bouclera et supprimera des lignes et validera afin que vous ne manquiez pas d'annulation et que vous n'ayez pas à vous soucier du verrouillage des lignes

begin
   loop
      delete from xx where yyy=zzz and rownum < 1000;
      exit when sql%rowcount = 0;
      commit;
   end loop;
   commit;
end;
/