假如数据表emplist内有10条记录,PL/SQL代码如下:
declare
   v_count integer := 0;
begin
   for emp in (select * from emplist) loop
     dbms_output.put_line(emp.ename);
     v_count := emp%rowcount;
   end loop;
   if v_count > 10 then
    dbms_output.put_line('records more then ten..');
   end if;
end;
/
程序执行后,系统提示:
PLS-00324:游标属性不能用于非游标‘emp’
emp不是已经是一个游标了吗?请教各们大神,如何解决这个问题?最好解析为什么会报这个错?万分感激…

解决方案 »

  1.   

    你这个是隐式游标,emp是游标里提取的一行记录,不是游标。
    你这个可以改成
    declare
      v_count integer := 0;
    begin
      for emp in (select * from emplist) loop
      dbms_output.put_line(emp.ename);
      v_count := v_count+1;
      end loop;
      if v_count > 10 then
      dbms_output.put_line('records more then ten..');
      end if;
    end;
    /