declare
  CURSOR cur_d IS select * from NFCKLST_a;
  tab   cur_d%rowtype;
begin
   open cur_d;
   loop
      exis when cur_d%notfound;
       insert into NFCKLST_d
        values tab;
   end loop;
   close cur_d;
end;ORACLE 9i 以上版本支持这种用法

解决方案 »

  1.   

    漏 fetch into 了
    declare
    CURSOR cur_d IS select * from NFCKLST_a;
    tab cur_d%rowtype;
    begin
    open cur_d;
    loop
    fetch cur_d into tab;
    exis when cur_d%notfound;
    insert into NFCKLST_d
    values tab;
    end loop;
    close cur_d;
    end;
      

  2.   

    NFCKLST_a和NFCKLST_d结构完全一致,字段有很多,每个列举很麻烦。是否有省略的写法?
    ========>当然有了。         insert into NFCKLST_d  values row_set
      

  3.   

    insert into NFCKLST_d  
    select * from NFCKLST_a
      

  4.   

    wgsasd311(自强不息)\sbaz(万神渡劫) () 信:
       这个我知道啊!关键是cur_d 不是如此简单的东西,否则不用写存储过程了。
    V_name char(10);
    V_Accno char(13);
    V_Start Date;
    V_End DAte;CURSOR  cur_d  IS        
               select  *  from  NFCKLST_a  
               where account=V_accno and name like V_name 
                and date between V_Start and V_End
    ......................................................