你的意思是一定记录条数提交一次吧! 如果我对你提问理解不对的话,就不用看下面的了。 如果是这样的话,就弄个变量x_num做计数器,1000条提交一次就是 x_num := x_num + 1; if mod(x_num,1000) = 0 then commit; end if;
这个仅仅是取模提交嘛,对速度没多大影响,我是说在for的游标里取模可以加快数据处理的速度的。
看看这个试试... 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;
如果我对你提问理解不对的话,就不用看下面的了。
如果是这样的话,就弄个变量x_num做计数器,1000条提交一次就是
x_num := x_num + 1;
if mod(x_num,1000) = 0 then
commit;
end if;
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;