17,378
社区成员
发帖
与我相关
我的任务
分享
--修剪了下 在试试看
CREATE OR REPLACE Procedure PRO_Update_dzk is
v_count NUMBER;
v_hid Varchar2(30);
v_mlph VARCHAR2(50);
v_mlxz VARCHAR2(100);
n number;
Cursor cur_hid Is Select hid From T_DZK_TEMP t Where t.bz='0' Or t.flag='0' Order By t.pcsbm;
Begin
v_count:=0;
For cur_hid_rec In cur_hid Loop
v_count:=v_count+1;
v_hid:=cur_hid_rec.hid;
Select count(*) into n From aa t Where t.hid=v_hid ;
if n>0 then
Select t.h,t.z into v_h,v_z From aa t Where t.hid=v_hid ;
Update T_DZK_TEMP a Set h=v_h ,z= v_z Where a.hid=v_hid;
else
Delete From T_DZK_TEMP a Where a.hid=v_hid;
end if;
End Loop;
Commit;
End ;
CREATE OR REPLACE Procedure PRO_Update_dzk is
v_count NUMBER;
v_hid Varchar2(30);
v_mlph VARCHAR2(50);
v_mlxz VARCHAR2(100);
Cursor cur_hid Is Select hid From T_DZK_TEMP t Where t.bz='0' Or t.flag='0'Order By t.pcsbm;
Begin
v_count:=0;
For cur_hid_rec In cur_hid Loop
v_count:=v_count+1;
v_h:='';
v_z:='';
v_hid:=cur_hid_rec.hid;
Select t.h,t.z into v_h,v_z From aa t Where t.hid=v_hid ;
--此处有可能查出数据为空,属正常现象
If (v_h Is Null) And (v_z Is Null) Then
Delete From T_DZK_TEMP a Where a.hid=v_hid;
Else
Update T_DZK_TEMP a Set h=v_h ,z= v_z Where a.hid=v_hid;
End If;
if mod(v_count,1000)=0 then
Commit;
end if;
End Loop;
Commit;
End ;