首页 > 数据库技术 > 详细

plsql游标最后一行重复的问题

时间:2014-09-20 10:03:47      阅读:331      评论:0      收藏:0      [点我收藏+]
大家仔细看一下,下面第一个存储过程,test01,有没问题?
看似没问题,其实会造成重复行,test02将exit when的语句放到合适的位置上来。就不会出现最后一行重复打印的问题。


create or replace procedure test01 as
  cursor cursor1 is
    select * from v$session where rownum <= 5;
  record1 cursor1%rowtype;
begin
  DBMS_OUTPUT.ENABLE(buffer_size => null);
  open cursor1;
  loop
    fetch cursor1 into record1;
    dbms_output.put_line(record1.sid);
    exit when cursor1%notfound;
  end loop;
  close cursor1;
end;

-----------------------------------------------------------------------
create or replace procedure test02 as
  cursor cursor1 is
    select * from v$session where rownum <= 5;
  record1 cursor1%rowtype;
begin
  DBMS_OUTPUT.ENABLE(buffer_size => null);
  open cursor1;
  loop
    fetch cursor1 into record1;
    exit when cursor1%notfound;
    dbms_output.put_line(record1.sid);
  end loop;
  close cursor1;
end;



plsql游标最后一行重复的问题

原文:http://blog.csdn.net/whiteoldbig/article/details/39429549

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!