代码改变世界

转:Oracle中的带参数的视图

2010-04-15 15:45  Tracy.  阅读(568)  评论(0编辑  收藏  举报

创建存储过程

create or replace package pkg_pv is
procedur
e set_pv(pv varchar2);
functio
n get_pv return varchar2;
en
d;

creat
e or replace package body pkg_pv is
v
 varchar2(20);
 

procedur
e set_pv(pv varchar2) is begin v:=pv; end;

functio
n get_pv return varchar2 is begin return v; end;

en
d;   
    创建带参视图

create view v_emp as select * from emp where ename=pkg_pv.get_pv();    
    调用过程,结果正确执行

begin
  pkg_pv.setpv
('scotte');
en
d;
selec
t * from v_emp;   
    按照此方法我们可以把通过包的形式来创建一个系统变量,通过在运行时设置其值。来获得对一些需要在运行时有不同值需求的业务处理作一些更简化的处理。本例中我们甚至可以在包体里面它设一个初始值,如果不单独设置时,就采用初值。这样就可以获得更大的灵活