日期:2014-05-17  浏览次数:21080 次

何以是“游标的非游标属性”
假如数据表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不是已经是一个游标了吗?请教各们大神,如何解决这个问题?最好解析为什么会报这个错?万分感激…
------解决方案--------------------
你这个是隐式游标,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;
/