oracle for in 游标有关问题
oracle for in 游标问题
类似这种:for empInfo in csr_Update loop
begin
当最后一条的时候,打印XXX
end
问题是:怎么判断for循环到了最后一条了?求助。
------解决方案--------------------
由于没有办法去游标的总记录数,所以只要用两次循环实现,第一次去总记录数。
当然,你也可以将你游标的SQL作为子查询,用count求出总记录数,然后用来判断是否到了最后一条记录。
------解决方案--------------------
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;
类似这种: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;