-- TYPE SELCUR IS REF CURSOR; PROCEDURE GET_X(C1 OUT SELCUR) AS BEGIN OPEN C1 FOR SELECT * FROM DUAL; EXCEPTION WHEN OTHERS THEN RAISE; END;
PROCEDURE LOOK_X IS X VARCHAR2; X_CURSOR SELCUR; BEGIN GET_X(X_CURSOR); LOOP FETCH [b]?[/b] INTO X; EXIT WHEN X_CURSOR%NOTFOUND; END LOOP; EXCEPTION WHEN OTHERS THEN RAISE; END;
create or replace PROCEDURE GET_X(C1 OUT sys_refcursor) AS BEGIN OPEN C1 FOR SELECT * FROM emp; EXCEPTION WHEN OTHERS THEN RAISE; END; / CREATE OR REPLACE PROCEDURE LOOK_X IS X scott.emp%rowtype; X_CURSOR sys_refcursor; BEGIN GET_X(X_CURSOR); LOOP FETCH x_cursor INTO X; dbms_output.put_line(x.empno); EXIT WHEN X_CURSOR%NOTFOUND; END LOOP; EXCEPTION WHEN OTHERS THEN RAISE; END; begin look_x; end; / 7369 7499 7521 7566 7654 7698 7782 7788 7839 7844 7876 7900 7902 7934