create or replace procedure tongji is
p_month number;
p_id varchar2(16);
p_zu number(3);
sql_str varchar(2000);
Rcursor cursor1 is select id,month,zu_no into p_id,p_month,p_zu from b_bak ;
BEGIN
open cursor1
loop
--select id,month,zu_no into p_id,p_month,p_zu from b_bak ;
FETCH cursor1 INTO p_id,p_month,p_zu;
exit when cursor1%notfound;
-- sql_str:='update a set "'||p_month||'"=8';
sql_str:='update a_bak set "'||p_month||'"='||p_zu||' where a_bak.cstm_id='''||p_id||'''';
EXECUTE IMMEDIATE sql_str;
--USING p_id;
-- dbms_output.put_line(sql_str);---引入了这个很关键,调试时可以看到语句执行的效果
end loop;
close cursor1;
commit;
END ;
p_month number;
p_id varchar2(16);
p_zu number(3);
sql_str varchar(2000);
Rcursor cursor1 is select id,month,zu_no into p_id,p_month,p_zu from b_bak ;
BEGIN
open cursor1
loop
--select id,month,zu_no into p_id,p_month,p_zu from b_bak ;
FETCH cursor1 INTO p_id,p_month,p_zu;
exit when cursor1%notfound;
-- sql_str:='update a set "'||p_month||'"=8';
sql_str:='update a_bak set "'||p_month||'"='||p_zu||' where a_bak.cstm_id='''||p_id||'''';
EXECUTE IMMEDIATE sql_str;
--USING p_id;
-- dbms_output.put_line(sql_str);---引入了这个很关键,调试时可以看到语句执行的效果
end loop;
close cursor1;
commit;
END ;
create or replace procedure tongji is
p_month number;
p_id varchar2(16);
p_zu number(3);
sql_str varchar(2000);
cursor cursor1 is
select id, month, zu_no into p_id, p_month, p_zu from b_bak; --rcursor改为cursor
BEGIN
open cursor1; --这里少了;号
loop
--select id,month,zu_no into p_id,p_month,p_zu from b_bak ;
FETCH cursor1
INTO p_id, p_month, p_zu;
exit when cursor1%notfound;
-- sql_str:='update a set "'||p_month||'"=8';
sql_str := 'update a_bak set "' || p_month || '"=' || p_zu ||
' where a_bak.cstm_id=''' || p_id || '''';
EXECUTE IMMEDIATE sql_str;
--USING p_id;
-- dbms_output.put_line(sql_str);---引入了这个很关键,调试时可以看到语句执行的效果
end loop;
close cursor1;
commit;
END;