楼主应该在包QUERY_PKG内部自己定义了一个游标QUERY_CUR,没有系统提供的默认动态游标,所以我就直接引用你的游标了。
另外如果不愿意在sqlplus下去执行的话,想在PL/SQL中的SQLWINDOW中运行,可以尝试使用一下办法:
DECLARE
pub_cursor QUERY_PKG.QUERY_CUR;
BEGIN
GetRoleInfo(10,pub_cursor);
FETCH pub_cursor INTO <info_object>;--具体写入那种类型的变量,可以自己决定。
WHILE pub_cursor%FOUND LOOP
FETCH pub_cursor INTO <info_object>;
END LOOP;
CLOSE pub_cursor;
END;
SQL> create or replace procedure test
2 (pi_deptno IN emp.deptno%TYPE,po_result in out SYS_REFCURSOR)
3 is
4 begin
5 OPEN po_result FOR
6 SELECT empno,ename,job,sal FROM…………
[/Quote]
再顶!
SQL> create or replace procedure test
2 (pi_deptno IN emp.deptno%TYPE,po_result in out SYS_REFCURSOR)
3 is
4 begin
5 OPEN po_result FOR
6 SELECT empno,ename,job,sal FROM……
[/Quote]
SQL> create or replace procedure test
2 (pi_deptno IN emp.deptno%TYPE,po_result in out SYS_REFCURSOR)
3 is
4 begin
5 OPEN po_result FOR
6 SELECT empno,ename,job,sal FROM emp
7 WHERE deptno=pi_deptno;
8 end test;
9 /
过程已创建。
SQL> var r_cur refcursor
SQL> exec test(10,:r_cur)
PL/SQL 过程已成功完成。
SQL> print :r_cur
EMPNO ENAME JOB SAL
---------- ---------- --------- ----------
7782 CLARK MANAGER 2450
7839 KING PRESIDENT 5000
7934 MILLER CLERK 1300