先在包中定义了一个游标:
--将数据类型 REF_CURSOR 定义在自定义的程序包中pkg_const
CREATE OR REPLACE PACKAGE PKG_CONST AS
TYPE REF_CURSOR IS REF CURSOR;
ENDPKG_CONST;
然后在存储过程中使用该游标类型参数作为out型参数
CREATE OR REPLACE PROCEDURE GET_EMPINFOBYDEPNO(IN_DEPNO
IN NUMBER,
OUT_EMPINFO OUT PKG_CONST.REF_CURSOR) AS
BEGIN
OPEN OUT_EMPINFO FOR
SELECT EMPNO, ENAME FROM EMP WHERE DEPTNO = IN_DEPNO;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('获取员工信息发生错误');
END GET_EMPINFOBYDEPNO;
/
***以上两步均操作成功,问题出在第三步,我在执行这个存储过程时报错:open那行的游标变量定义错误,请高手指点
SET serveroutput ON;
DECLARE
RET_CURSOR_VALUEPKG_CONST.REF_CURSOR;
RET_EMPNO
EMP.EMPNO%TYPE;
RET_ENAME
EMP.ENAME%TYPE;
BEGIN
GET_EMPINFOBYDEPNO(1, RET_CURSOR_VALUE);
OPEN RET_CURSOR_VALUE;--报游标类型有误,未解决!!!
LOOP