PL/SQL cursor用了FOR LOOP之后还可以用fetch吗

如图,把带--的两句改掉,运行后出现错误ORA-01001:无效的游标ORA-06512:在line12为什么dept_cur变成了无效的游标?【源码】declarecu... 如图,把带--的两句改掉,运行后出现错误
ORA-01001: 无效的游标ORA-06512: 在 line 12

为什么dept_cur变成了无效的游标?

【源码】
declare cursor dept_cur is select deptno,dname from dept where deptno<40; cursor dept_cur2(pno number) is select ename,job,hiredate,sal from emp where empno<7900 and deptno=pno; dept_rec dept_cur%rowtype;--删除 dept_rec2 dept_cur2%rowtype;
begin open dept_cur;--FOR dept_rec IN dept_cur loop fetch dept_cur into dept_rec; if(dept_cur%found) then open dept_cur2(dept_rec.deptno); loop fetch dept_cur2 into dept_rec2; if(dept_cur2%found) then dbms_output.put_line(dept_rec.deptno||' '||dept_rec2.ename||' '||dept_rec2.job||' '||to_char(dept_rec2.hiredate,'YYYY-MM-DD')||' '||dept_rec2.sal); else exit; end if; end loop; close dept_cur2; else exit; end if; end loop; close dept_cur;end;
展开
 我来答
射手小小王
2014-02-09 · TA获得超过398个赞
知道小有建树答主
回答量:716
采纳率:85%
帮助的人:265万
展开全部
你只修改这点点是不够的,还要删除掉FETCH,FOR游标不与FETCH配合使用,我感觉你纯粹是在乱写
declare
cursor dept_cur is
select deptno, dname from dept where deptno < 40;
cursor dept_cur2(pno number) is
select ename, job, hiredate, sal
from emp
where empno < 7900
and deptno = pno;

begin
FOR dept_rec IN dept_cur LOOP
FOR dept_rec2 IN dept_cur2(dept_rec.deptno) LOOP
dbms_output.put_line(dept_rec.deptno || ' ' || dept_rec2.ename || ' ' ||
dept_rec2.job || ' ' ||
to_char(dept_rec2.hiredate, 'YYYY-MM-DD') || ' ' ||
dept_rec2.sal);
END LOOP;
END LOOP;

END;
这个是我的代码
追问
Cursor FOR LOOP为何不能用fetch?
追答
FOR游标已经帮你做了,你仔细看我的代码,如果还不明白,就只能去看书了,记得把分给我
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qwiei792
2014-02-10
知道答主
回答量:20
采纳率:0%
帮助的人:11.7万
展开全部
- 一个游标的定义,假设没有为学生的表,有一个字段id。 - 以下功能删除记录学生的SQL表奇数行申报studentCursor光标 - 。命名idfrom studentorder的studentCursor,由id DECLARE @ ID整型定义的游标forselect - 定义一个游标变量保存每条记录的值,如果游标是多个字段,你需要定义多个领域开放studentCursor - 。打开游标读取下一个从studentCursor成@ ID - 让光标移动到下一个记录,而@ @ FETCH_STATUS = 0begin - 如果奇数行,根据主键id来删除记录,如果@计数%2 = 1开始从学生那里删除ID = @ ID末尾设置@计数= @计数+1 - 让光标在While循环再下一个记录,以实现循环提取下一个从studentCursor成@ IDend接近studentCursor - 关闭游标释放studentCursor - 释放游标资源。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式