oracle 中好像没有提供参数化的视图功能。
不过,可以用以下方法变通:
create or replace package pkg_pv is
procedure set_pv(pv varchar2);
function get_pv return varchar2;
end;
/
create or replace package body pkg_pv is
v varchar2(20);
procedure set_pv(pv varchar2) is begin v:=pv; end;
function get_pv return varchar2 is begin return v; end;
end;
/
create view v_emp as select * from emp where ename=pkg_pv.get_pv();
查询时:scott@O9I.US.ORACLE.COM> exec pkg_pv.set_pv('SCOTT');
PL/SQL 过程已成功完成。
scott@O9I.US.ORACLE.COM> select * from v_emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- ---------- ---------- ----------
DEPTNO
----------
7788 SCOTT ANALYST 7566 19-4月 -87 3000
20
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/756652/viewspace-242440/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/756652/viewspace-242440/