有时候需要逐条操作数据,这个时候利用循环将会是一个非常不错的选择:
在中间表中增加处理标识,能够帮助我们有效的掌握数据处理的具体情况(报错信息,处理与否)
declare
create table temp_table(id varchar2(10), data_modify varchar2(10), modify_flag varchar2(10), err_msg varchar2(200));
declare
cursor get_data_info is
select *
from temp_table
where modify_flag = 0
and err_msg = 'C';
//此处可以声明变量
vn_err_msg varchar2(200);
begin
for i in get_data_info loop
begin
vn_err_msg := '';//初始化变量
update temp_table set data = new_data where id = i.id;
//刷新更新标识
update zx.temp_zwj_common_region_id_0620
set modify_flag = 1, err_msg = 'S'
where access_nbr = i.access_nbr
and modify_flag = 0