oracle存储过程返回游标,取值报错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 我靠你这是存储过程吗?语法各种错
以上是关于oracle存储过程返回游标,取值报错的主要内容,如果未能解决你的问题,请参考以下文章