loop 
  ... 
  insert ...
  if i=100 then 
   commit work;
  end if;

解决方案 »

  1.   


    declare
    i number:=0;
    begin
    loop
    exit when ...;
    i:=i+1;
    ....
    if i=100 then
    commit;
    end if;
    ....
    end loop;
    end;
    /
      

  2.   

    if i = 200.300...
    ?
    when loop end then commit 
      

  3.   

    以上的做法雖然可以控制100筆數據commit一次﹐但沒有這個必要這么做﹐應該保持數的統一﹐我認為應全部完成后再commit﹐
      

  4.   

    loop
      i := i + 1;
      if  MOD(i,100) =0 then
          commit;
      end if;
    end loop;
      

  5.   

    我想是不是可以,在LOOP中每循环一次的INSERT、UPDATE、DELETE的WHERE条件中加入:ROWNUM〈= 100,然后COMMIT一次。