oldwain随便写
===========================================================
===========================================================

问题:

zzk101

带有参数的view是指这个view可以有参数,当select时可以加入这些参数从而可以返回不同的结果。

for example:

create view my_parameter_view { my_name varchar2(20)} as 
select * from work_log where 
name = my_name
select * from my_parameter_view('my_name')

就会只有我自己的记录。

我的回答:


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


scott@O9I.US.ORACLE.COM>

(需要引用, 请注明出处: http://oldwain.itpub.net)

oldwain 发表于:2005.07.28 13:16 ::分类: ( Oracle ) ::阅读:(1271次) :: 评论 (0) ::收藏此页到365Key

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)

 authimage


自我介绍
切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
赞助商
网站链接...
其它资源
我的网摘...