当前位置: 代码迷 >> Oracle管理 >> oracle for in 游标有关问题
  详细解决方案

oracle for in 游标有关问题

热度:103   发布时间:2016-04-24 04:16:31.0
oracle for in 游标问题
 类似这种:for  empInfo  in csr_Update loop
begin
    当最后一条的时候,打印XXX
end

问题是:怎么判断for循环到了最后一条了?求助。
------解决方案--------------------
引用:
自己顶一下,工作需要,,

由于没有办法去游标的总记录数,所以只要用两次循环实现,第一次去总记录数。
当然,你也可以将你游标的SQL作为子查询,用count求出总记录数,然后用来判断是否到了最后一条记录。

-- Created on 2014-8-2 by ADMINISTRATOR 
declare
  -- Local variables here
  CURSOR CR IS
    SELECT RK FROM T2;
  l_rk number;
  i    integer;
begin
  -- Test statements here
  FOR C1 IN CR LOOP
    i := cr%rowcount;
  END LOOP;

  FOR C1 IN CR LOOP
    if cr%rowcount = i then
      dbms_output.put_line(c1.rk);
    end if;
  END LOOP;

end;

------解决方案--------------------
declare
  -- Local variables here
  CURSOR CR IS
    SELECT RK FROM T2;
  l_rk number;
  i    integer;
begin
  -- Test statements here
  FOR C1 IN CR LOOP
    i := cr%rowcount;
  END LOOP;
 
  FOR j IN 1..i LOOP
    if j = i then
      dbms_output.put_line(c1.rk);
    end if;
  END LOOP;
 
end;
  相关解决方案