CREATE OR REPLACE PROCEDURE test_cur is
type mycursor_type is ref cursor;
c1 mycursor_type;
----使用
--打开动态游标,再往下就都一样了
/*type record_type is record(
myid emp.empno%type;
myname emp.ename%type;
myjob emp.job%type;
mymgr emp.mgr%type;
mysal emp.sal%type;
mydeptid emp.deptno%type;
);
r_c1 record_type; */
r_c1 emp%rowtype;
begin
open c1 for
select * from emp;
loop
fetch c1
into r_c1;
-- set serveroutput on;
DBMS_OUTPUT.PUT_LINE(r_c1.empno||' '||r_c1.ename);
exit when c1%notfound;
end loop;
close c1;
end test_cur;
SQL> set serveroutput on;
SQL> exec test_cur;
7369 SMITH
7499 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER
7876 ADAMS
7900 JAMES
7902 FORD
7934 MILLER
7934 MILLER
PL/SQL procedure successfully completed
SQL>