CURSOR CUR_AAC001  IS
  SELECT DISTINCT AAC001 FROM TEST_IC40 ;
begin
  --删除数据
  execute immediate 'truncate table v_yanglaolixi';
  
  
  open cur_aac001;
  loop
      fetch cur_aac001
            into str1_aac001;
            exit when CUR_AAC001%notfound;
            open cur_lixi;
            loop
                cursor cur_lixi is
       select aac001,to_number(substr(aae045),0,4)-1,aic410,aic412,aic413 from ic40 where aac001=:str_aac001;
       open cur_lixi;
       loop
                fetch cur_li into str2_aac001,str_aae045,num_aic410,num_aic412,num_aic413;
                
                exit when cur_lixi%notfound;
游标循环里不能定义游标吗?是不是定义语句都不能有?CURSOR CUR_AAC001  IS
  SELECT DISTINCT AAC001 FROM TEST_IC40 ;
cursor cur_lixi is
       select aac001,to_number(substr(aae045),0,4)-1,aic410,aic412,aic413, from ic40 where aac001=:str_aac001;
begin
  --删除数据
  execute immediate 'truncate table v_yanglaolixi';
  
  
  open cur_aac001;
  loop
      fetch cur_aac001
            into str_aac001;
            exit when CUR_AAC001%notfound;
            open cur_lixi;
            loop
                fetch cur_li into str_aac001,str_aae045,num_aic410,num_aic412,num_aic413;
                
我想在游标cur_lixi中用游标cur_aac001中的aac001字段,怎么实现?上面的都是有错的~~
希望大家帮个忙

解决方案 »

  1.   


    CURSOR CUR_AAC001  IS
      SELECT DISTINCT AAC001 FROM TEST_IC40 ;
    begin
      --删除数据
      execute immediate 'truncate table v_yanglaolixi';
      
      
      open cur_aac001;
      loop
          fetch cur_aac001
                into str1_aac001;
                exit when CUR_AAC001%notfound;
                open cur_lixi;
                loop---使用 for in ,不过尽量 不要使用游标循环,会降低性能
           for cur_lixi in (       
             select aac001,to_number(substr(aae045),0,4)-1 aae045,aic410,aic412,aic413 from ic40 where aac001=:str_aac001)  loop
                str2_aac001:= cur_lixi.aac001;
                str_aae045:=cur_lixi.aae045;
                num_aic410:=cur_lixi.aic410;
                num_aic412:=cur_lixi.aic412;
                num_aic413:=cur_lixi.aic413
                    
           end  loop;         
      

  2.   

    谢谢zaib2007 
    我像你说的那样,声明了cur_lixi 行,执行速度还是很慢,跟以前的差不多