简单oracle plsql cursor 游标出错

来源:百度知道 编辑:UC知道 时间:2024/05/26 08:25:19
DECLARE
v_ename person.username%TYPE;
v_salary person.password%TYPE;
CURSOR c_personQ IS SELECT username,password FROM person;
BEGIN
if c_personQ%isopen = false
then
open c_personQ;
end if;
FOR record_index IN c_personQ
LOOP
FETCH c_personQ INTO v_ename,v_salary;
DBMS_OUTPUT.PUT_LINE( v_ename);
end loop;
close c_personQ;
END;
请大家帮忙看看这个游标哪里有错
老是提示游标已经打开,但是我判断了的啊

改成这样试试
DECLARE
v_ename person.username%TYPE;
v_salary person.password%TYPE;
CURSOR c_personQ IS SELECT username,password FROM person;
BEGIN
if c_personQ%isopen = false
then
open c_personQ;
end if;
LOOP
FETCH c_personQ INTO v_ename,v_salary;
Exit when c_personQ%notfound;
DBMS_OUTPUT.PUT_LINE( v_ename);
end loop;
close c_personQ;
END;

FETCH c_personQ INTO v_ename,v_salary; 这句错了
就改成这样FETCH record_index INTO v_ename,v_salary;