网络自学几天,求指点,求大佬嘴下留情轻喷。谢谢!
declare
v_bdcdyh varchar2(200);
h number;
dj int;
i int := 1;
v_s varchar(1000);
v_slid varchar2(200);
v_slid1 varchar2(200);
v_fwid varchar2(200);
v_bdcqzh varchar2(200);
cursor cur_qlrlb is select * from bdc_qlrlb where bz = 0 and dyid is null;
begin
for qlrlb in cur_qlrlb
loop
select count(*) into h from bdc_regn_zb where slid = qlrlb.slid ;
select count(*) into dj from bdc_qlrlb where bz = 0 and slid = qlrlb.slid;
if h=1 then
select djkid,slid,bdcqzh,bdcdyh into v_fwid,v_slid1,v_bdcqzh,v_bdcdyh from bdc_regn_zb where slid = qlrlb.slid ;
end if;
if h=dj then
v_S := 'update bdc_qlrlb set dyid=' || '''' || v_fwid || ''' ,bdcqzh=' || '''' || v_bdcqzh || ''',bdcdyh=' || '''' || v_bdcdyh || ''' where slid=' || '''' || trim(v_slid1) || ''' and dyid is null and bz=''0''';
end if ;
i:=i+sql%rowcount;
end loop;
dbms_output.put_line(i);
execute immediate v_s;
end;
问题1: 请问下为什么每次执行都只更新一条。 打印出来的循环次数是有一万多条。(每执行提交一次,只能更新一条记录)。
问题2: dbms_output.put_line(v_s);放在循环里面,执行语句有时候打印出来的全是一样的内容(多条语句,一个变量),变量相同;有时候又是正常的,变量是不同的(多条语句,不同变量)!