使用参数在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 视图传递参数

在oracle中创建db link 已经确定创建成功了。在创建视图时为啥还会报不能找到db link呢?

如何检索用于在 Oracle 中创建视图的 SQL?

通过在 Oracle Apex 中创建视图将 cols 转换为 oracle 中的行

oracle 创建视图 提示列名重复,我知道应该是重名的列,重命名一下 怎么命名啊?