游标loop循环和游标for循环的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了游标loop循环和游标for循环的区别相关的知识,希望对你有一定的参考价值。
参考技术A BEGIN--隐含打开游标
FOR v_sal IN c_sal LOOP
--隐含执行一个FETCH语句
DBMS_OUTPUT.PUT_LINE(to_char(v_sal.employee_id)||'---'|| v_sal.ename||'---'||to_char(v_sal.salary)) ;
--隐含监测c_sal%NOTFOUND
END LOOP;
--隐含关闭游标
END;本回答被提问者采纳
oracle存储过程返回游标,取值报错
第一,你首先要保证你的过程是正确的,然后才可以去考虑调用的问题;第二,你调用的语句有问题,在你的存储过程中,OPEN 已经打开了游标,而你采用FOR游标,它又要去打开一次,建议你采用简单得LOOP去遍历游标。可能就没有问题了,
给你一个简单得例子:
CREATE OR REPLACE PROCEDURE PROGETALLUSER(P_USER OUT SYS_REFCURSOR) IS
BEGIN
OPEN P_USER FOR SELECT USERNAME,PASSWORD FROM TB_USER;
END PROGETALLUSER;
DECLARE
C_USER SYS_REFCURSOR;
C TB_USER%ROWTYPE;
BEGIN
PROGETALLUSER(C_USER);
LOOP
FETCH C_USER INTO C;
EXIT WHEN C_USER%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(C.USERNAME||','||C.PASSWORD);
END LOOP;
CLOSE C_USER;
END; 参考技术A 把stulist定义为游标类型先,就可以了
type v_stulist is ref cursor;
stulist v_stulist;
在定义加一个这个试试吧 参考技术B 我靠你这是存储过程吗?语法各种错
以上是关于游标loop循环和游标for循环的区别的主要内容,如果未能解决你的问题,请参考以下文章