declare
mccx varchar(4);--一定要大于等于表cmmtmcc表里的字段定义,最好是等于,不然,使用这个变量的时候会溢出。
mercnm varchar(100);
bus varchar(100);
ind varchar(200);
descx varchar(2000);
tm_stp varchar(26);
cursor up is select * from cmmtmcc a;--定义一个游标
begin open up;--打开游标
loop--循环,没有分号。
fetch up into mccx,mercnm,bus,ind,descx,tm_stp;--这是一句,句末有个分号,这里into的变量个数应该跟每个select出来的条目的字段个数一致。
update testmcc set merc_cls_nm=mercnm,bus_cls=bus,ind_cls=ind,bus_desc=descx where mcc_cd=mccx;
exit when up%NOTFOUND;--游标的常量结束循环用。
end loop;
close up;
end;
下面是带加法的一个。
declare
mccx varchar(4);
testdata number;
cursor up is select mcc_cd from cmmtmcc where rownum<=20;
begin open up;
testdata:=10001;
loop
fetch up into mccx;
insert into CMMTFEEMCCCOST (corg_no,Mcc_cd)values(testdata||'',mccx);--||在oracle中可以把其他类型的数据转换成字符串类型。
testdata:=testdata+1;
exit when up%NOTFOUND;
end loop;
close up;
end;