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