oracle视图可以update吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle视图可以update吗相关的知识,希望对你有一定的参考价值。

可以的

    直接更新视图中的数据可以更新其对应的基础数据表

    并非视图中的所有数据都可以更新到基础数据表,只有那些直接从基础数据表获得的数据可以被更新

    视图中的虚列不可以被更新,虚列是指通过运算获得,基础数据表中并不存在的列

    比如基础数据表有tb_employees, tb_sales两个,我们创建一个view:


    create or replace view vw_employee_salary as select e.emp_name employee, e.emp_salary+s.sales_totalprice*0.1 salary from dt_employees e, dt_sales s where e.id=s.sales_by

    此时,视图中的employee列可以更新,而salary 列是虚列,不可以更新

参考技术A 不可以。update对表起作用。需要update视图所查询的表。本回答被提问者采纳 参考技术B 可以的
这个视图只能是单表视图

UPDATE可以更新视图吗

视图可以被UPDATE吗

        今天在工作过程中发现一个问题,进过排查发现原来是一个视图被update操作,开始比较不能理解视图为何被修改,通过查询资料,并进行验证发现:当Oracle数据库中对于单一表查询创建视图,可以进行update;对于多表查询创建视图,不能直接update

        1、对于单表验证过程如下:

            (1)  查询表T_XZQ

            (2)  创建视图V_XZQ

            (3)  执行UPDATE语句,可以执行成功:

            (4)  提交事务,查询当前结果:

 

        2、对于多表验证如下:

            (1)  查询表T_XZQ,T_XZQ_1:

            (2)  创建视图V_XZQ_1

            (3)  执行update语句,更新V_XZQ_1:

以上是关于oracle视图可以update吗的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE 中视图更新可以更新基表中数据,视图更新应该满足啥条件?

oracle 视图

Oracle 基础——视图

如何解决 Oracle Apex 中的“无法使用 DISTINCT、GROUP BY 等从视图中选择 FOR UPDATE”错误?

oracle视图如何计算当天数据量

6.4视图序列同义词--Oracle模式对象