declare
i interger(5)=1;
j interger(5)=4;
cursor AllInfo is select id from A;
oneInfo AllInfo%ROWTYPE;
begin
 for oneInfo in Allinfo loop
    for i in i..j
    loop 
     updata b set b.id=oneInfo.id where rownum>i and rownum<j
   end loop;
   i:=j;
   j:=j+4;
  end loop;    
end; 
Oracle 报 不能使用i变量求修改或者另一种方法。

解决方案 »

  1.   

    for n --这个是不需要定义的,如果是你定义的变量不能用在这里 in i..j
      

  2.   

    for i in i..j
    for后面的i换个变量.
      

  3.   

    你这个错误多多declare
    i number:=1;
    j number:=4;
    cursor AllInfo is select id from A;
    begin
     for a in Allinfo loop
      for k in i..j
      loop  
      updata b set b.id=oneInfo.id where rownum>i and rownum<j;
      end loop;
      i:=j;
      j:=j+4;
      end loop;   
    end; 
      

  4.   


    declare
    i interger(5)=1;
    j interger(5)=4;
    cursor AllInfo is select id from A;
    oneInfo AllInfo%ROWTYPE;
    begin
     for oneInfo in Allinfo loop
      for k in i..j
      loop  
      updata b set b.id=oneInfo.id where rownum>i and rownum<j
      end loop;
      i:=j;
      j:=j+4;
      end loop;   
    end;   try this..