baochangjin 发表于 2010-11-25 17:30

informix下存储过程中如何实现分批提交??紧急求助!!

如题。
现在我有表a,其中有100W条记录,我在一个存储过程中根据条件来删除这个表中的部分记录,
我用游标来实现的,但是这个实现方式应该是每次提交的吧!代码如下:
——————————————————————————————————————————
create procedure proc_test(tmp_iinteger) returning integer;

define i_l_sn            integer;
define opResult            integer;

begin
    on exception
      rollback;
      return -1;
    end exception;
   
    foreach c1 with hold for
      select sn into i_l_sn from log where time <= tmp_i
      delete from log where sn = i_l_sn;
    end foreach;
end;

let opResult = 0;
return opResult;
end procedure;
——————————————————————————————————————————————
现在我要做成,每删5000条记录才提交一次,
各位大侠,如何在存储过程中来实现?

PS:这个log表设计原则是sn为主键,自增列,并且time字段也有索引。

各位快来帮忙啊!!!非常感谢

baochangjin 发表于 2010-11-25 18:35

只有人看 没有人 回答啊!
每人帮我解决呀!

大梦 发表于 2010-11-25 23:13

informix里面begin work与commit work是配对使用的!
这个没办法做!
要不在你的程序里面加个入口参数来控制commit count!在外面循环调!
页: [1]
查看完整版本: informix下存储过程中如何实现分批提交??紧急求助!!