日期:2014-05-17  浏览次数:20759 次

关于plsql游标前移
比如定义一个游标,从联接表里取值
cursor c1 is select b.typeid aa,b.type nn,a.productid nb,a.productname xn,a.stock cd from product a,type b where a.typeid=b.typeid order by b.typeid;

我想经过判断跳出,之后再次引用游标,嵌套循环取值如
loop
  kucun:=0;
  loop
  fetch c1 into cc;
  DBMS_OUTPUT.put_line(cc.nn||' '||cc.xn||' 库存'||cc.cd);
  kucun:=kucun+cc.cd;
  exit when cc.aa>v_typeid or (cc.aa=8 and cc.nb>=73);
  end loop;
   
   
  v_typeid:=v_typeid+1;
  DBMS_OUTPUT.put_line('总库存量为'||to_char(kucun));
  exit when v_typeid=9;
  
  end loop;
  close c1;

但问题就出来了 不符合条件的第一个值会被跳过,因为fetch c1 into cc 默认是next

有什么办法可以让游标往前移动一行吗?求示例

------解决方案--------------------
干嘛跳出了还要引用游标
------解决方案--------------------
在where条件里面加不了限制么?
------解决方案--------------------
探讨

取出一部分想要的结果,继续往下取,取完为止


引用:

干嘛跳出了还要引用游标