%NOTFOUND

set serverout on

 

declare

       cursor test is select ename from scott.emp;

       name SCOTT.EMP.ENAME%type;

       flag int:= 1;

begin

       open test;

       loop

              if test%notfound then

                     exit;

              end if;

              fetch test into name;

              DBMS_OUTPUT.PUT_LINE(flag||name);

              flag := flag + 1;

       end loop;

       close test;

end;——最后一个记录多输出了一次

 

正确的写法如下:

set serverout on

 

declare

       cursor test is select ename from scott.emp;

       name SCOTT.EMP.ENAME%type;

       flag int:= 1;

begin

       open test;      

       loop

              fetch test into name;

              if test%notfound then

                     exit;

              end if;

              DBMS_OUTPUT.PUT_LINE(flag||name);

              flag := flag + 1;

       end loop;

       close test;

end;

请使用浏览器的分享功能分享到微信等