帶引數的檢視

zhouwf0726發表於2019-07-11

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章