oracle根据多个条件分别修改符合条件的记录

declare  
    i number; 
    temp_sum number;
    temp_hfmpcode temptable.pubname%type;  --temptable.pubname%type指的是temptable表的pubname字段的类型
    temp_fullname temptable.pubcode%type;
begin 
    select count(*) into temp_sum from temptable b;
    i := 1; 
while i<=temp_sum loop 
         --1、查询
            select t.pubname into temp_hfmpcode from (select rownum rn,b.* from temptable b order by b.pubname) t where t.rn between i and i;
            select t.pubcode into temp_fullname from (select rownum rn,b.* from temptable b order by b.pubname) t where t.rn between i and i;
            --2、更新
            update r_pubinfo t set t.hfmpcode=temp_hfmpcode where t.fullname=temp_fullname;
            i := i+1; 
end loop; 
end; 

以上代码在sql/plus直接运行即可

猜你喜欢

转载自blog.51cto.com/1197822/2156612