使用参数在oracle中创建视图[重复]
Posted
技术标签:
【中文标题】使用参数在oracle中创建视图[重复]【英文标题】:Make a View in oracle with Parameters [duplicate] 【发布时间】:2013-03-22 12:15:17 【问题描述】:我想在 Oracle 中创建一个视图,我需要在其中提供 student_ID
作为参数,它将从 student
表中提取 student_name
。
我没有视图方面的经验,也没有使用 Oracle 的经验。
【问题讨论】:
阅读:docs.oracle.com/cd/E11882_01/server.112/e26088/… 视图不能在我认为你的意思的意义上被参数化。如果您想将特定参数传递给查询,则必须依赖 Oracle 的可编程性:例如,您的视图可以引用包中的函数,这些函数返回一些值并且可以通过包的接口进行设置...参见@987654322 @ @Xophmeister 带参数,我的意思是我们可以传递的参数,就像我们将参数传递给存储过程一样。在 oracle 中不可能吗? @AtifImtiaz 不,不是直接。 【参考方案1】:假设表定义如下:
CREATE TABLE STUDENT (
student_id int,
student_name varchar2(100),
student_address varchar2(255),
student_email varchar2(100)
);
创建一个只有 id 和 name 字段的视图:
CREATE VIEW VSTUDENT AS
SELECT student_id, student_name
FROM STUDENT;
然后你可以:
SELECT student_name
FROM VSTUDENT
WHERE student_id=123;
创建仅包含 student_id(查询字段)和 student_name(必填字段)的视图可以保护所有其他学生数据免受没有访问权限的人的影响。
【讨论】:
【参考方案2】:CREATE VIEW view_name AS
SELECT student_name, student_grades, more columns...
FROM student_table
WHERE student_id = 20
/
【讨论】:
以上是关于使用参数在oracle中创建视图[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 postgresql 中创建只读视图,类似于 oracle?
在oracle中创建db link 已经确定创建成功了。在创建视图时为啥还会报不能找到db link呢?