【发布时间】:2013-08-28 07:47:19
【问题描述】:
我在 Scott 架构中运行以下命令:
SET serveroutput ON;
BEGIN
FOR c_Emp IN (SELECT * FROM emp)
LOOP
dbms_output.put_line('The record processed by the cursor ' || c_Emp%rowcount);
END LOOP;
end;
这给出了错误:
游标属性可能不适用于非游标“C_EMP”
但是,如果这是使用显式游标完成的,它可以正常工作:
设置服务器输出;
DECLARE
emp_record emp%ROWTYPE;
count_variable NUMBER;
CURSOR c IS
SELECT * FROM emp;
BEGIN
OPEN c;
loop
fetch c INTO emp_record;
exit WHEN c%notfound;
dbms_output.put_line ('The record count is ' || c%rowcount);
END loop;
close c;
end;
只是想了解:在使用CURSOR FOR LOOP时,索引变量是否不是游标属性,如果是为什么?有人可以解释一下吗....
【问题讨论】:
-
为什么不让我们知道您在什么系统和什么语言上做什么?
-
我 guess 您指的是 Oracle DBMS 上的 SQL。对吗?
-
抱歉,如果不清楚,它是一个 Oracle RDBMS,我正在 Scott 模式上执行这个 PL/SQL 块。
标签: oracle loops for-loop plsql cursor