17,377
社区成员
发帖
与我相关
我的任务
分享
SQL> create or replace procedure p_rec(v_tb varchar2,v_col varchar2,v_col2 varchar2,cur out sys_refc
ursor)
2 as
3 begin
4 open cur for 'select '||v_col||','||v_col2||' from '||v_tb;
5 end;
6 /
过程已创建。
---简单的引用
SQL> edi
已写入 file afiedt.buf
1 declare
2 cur sys_refcursor;
3 v_no emp.empno%type;
4 v_name emp.ename%type;
5 begin
6 p_rec('emp','empno','ename',cur);
7 fetch cur into v_no,v_name;
8 while cur%found loop
9 dbms_output.put_line(v_no||' '||v_name);
10 fetch cur into v_no,v_name;
11 end loop;
12 close cur;
13* end;
SQL> /
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
PL/SQL 过程已成功完成。