由于数据量比较大,单进程执行处理耗时较长,现象用多进程执行,听说可以在for循环的游标里取模,请问一下这个取模到底怎么写的?谢谢指教!!!

解决方案 »

  1.   

    你的意思是一定记录条数提交一次吧!
    如果我对你提问理解不对的话,就不用看下面的了。
    如果是这样的话,就弄个变量x_num做计数器,1000条提交一次就是
    x_num := x_num + 1;
    if mod(x_num,1000) = 0 then
       commit;
    end if;
      

  2.   

    这个仅仅是取模提交嘛,对速度没多大影响,我是说在for的游标里取模可以加快数据处理的速度的。
      

  3.   

    看看这个试试...
    CREATE OR REPLACE PROCEDURE PRO_RECV(i in int) AS  Cursor CUR_ZZY IS
        SELECT * FROM tc_sms where FLAG = 0;
      AND MOD(ID, 2) =i;  NEW1 tc_sms%Rowtype;
    BEGIN
        Open CUR_ZZY;
        Loop
          Begin
            Fetch CUR_ZZY
              Into NEW1;
            Exit When CUR_ZZY%Notfound;     --循环处理    end Loop;
      ...
    end;