xjqqxjqq(JAI) 方法可以。
for i in 1 .. 2 
loop 
  open cur_city_id;
  LOOP
    fetch cur_city_id into v_city_code;
    exit when cur_city_id%notfound; 
    ......
  END LOOP;
  close cur_city_id;
  commit;
end loop; 不知道还有什么更好的方法,期待......

解决方案 »

  1.   

    tomboy0(小波波):
    你这个方法我是知道的,我的问题是如果table1里的任一条记录不在table2里那么就把这条记录插入到table2里
    我的SQL里面也是用的你写的那两个循环,按你的说法我要打开100W次游标,是不是很耗时? 
    后来我写了一个脚本,都运行两天还没有完成;
    INSERT INTO ly_mapping (ID,REGION_UUID,REGION_NAME,SITE_UUID,SITE_NAME,ROOM_UUID,ROOM_NAME,NE_UUID,NE_NAME,CARD_UUID,CARD_NAME,PORT_UUID,PORT_NAME,SPECIALITY,DEVICE_TYPE,NMS_DEVICE_CODE,NMS_DEVICE_DESC,NMS_SYSCODE,LAST_MODIFY_DATE,STATUS)
    select seq_global.nextval, u1.REGION_UUID,u1.REGION_NAME,u1.SITE_UUID,u1.SITE_NAME,u1.ROOM_UUID,u1.ROOM_NAME,u1.NE_UUID,u1.NE_NAME,null,null,null,null,u1.SPECIALITY,u1.DEVICE_TYPE,null,null,null,sysdate,1
    from ly_res_name u1
    WHERE u1.SPECIALITY=1 AND u1.DEVICE_TYPE=3 AND u1.NE_UUID   NOT IN 
    (SELECT t1.NE_UUID FROM ly_mapping t1 WHERE t1.SPECIALITY=1 AND t1.DEVICE_TYPE=3);