oracle视图可以update吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle视图可以update吗相关的知识,希望对你有一定的参考价值。
可以的
直接更新视图中的数据可以更新其对应的基础数据表
并非视图中的所有数据都可以更新到基础数据表,只有那些直接从基础数据表获得的数据可以被更新
视图中的虚列不可以被更新,虚列是指通过运算获得,基础数据表中并不存在的列
比如基础数据表有tb_employees, tb_sales两个,我们创建一个view:
这个视图只能是单表视图
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 Apex 中的“无法使用 DISTINCT、GROUP BY 等从视图中选择 FOR UPDATE”错误?