今天处理数据,遇到一个诡异的现象。基本的情况是,
利用oracle存储过程,将一个oracle数据库表t_a,根据t_b记录,进行更新。
因为表的数据量有点大(大约400多万),所以就想着计数,分批提交。所写的存储过程大体逻辑就是如下:
declare
lv_number(10);
begin
for x in (select id from t_b) loop
update t_a set t.col=*** where t.id=x.id; --这个涉及到业务的都忽略了
update t_b set t.co12=*** where t.id=x.id;
if(lv_no>1000) then
commit;
lv_no:=0;
else
lv_no:=lv_no+1;
end if;
commit;
end;
这个存储过程执了30分钟,然后到数据库查询
利用oracle存储过程,将一个oracle数据库表t_a,根据t_b记录,进行更新。
因为表的数据量有点大(大约400多万),所以就想着计数,分批提交。所写的存储过程大体逻辑就是如下:
declare
lv_number(10);
begin
for x in (select id from t_b) loop
update t_a set t.col=*** where t.id=x.id; --这个涉及到业务的都忽略了
update t_b set t.co12=*** where t.id=x.id;
if(lv_no>1000) then
commit;
lv_no:=0;
else
lv_no:=lv_no+1;
end if;
commit;
end;
这个存储过程执了30分钟,然后到数据库查询