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直接运行即可