oracle视图能增删改,oracle视图的增删改
今天客户现场报了个数据库错误,ora01031 权限不足
既然人家oracle都说了权限不足,所以就从权限角度开始排产,结果怎么查权限设置也都没问题。
然后静下心来,透过现象看本质,问题能够定位,是对某个视图做update操作时报错,跟出sql语句在pl/sql中执行依然报权限不足。
编辑视图,看视图的写法,发现这是个复杂视图且视图里又套了其他视图,对于复杂视图通过触发器可以满足增删改,其实套视图业务所谓,也能实现增删改,
但关键是客户现场的程序视图里的内容是写死的,类似于select * from dual,对于dual自然就没有权限了。
通过分析问题,总结了一下oracle视图的增删改,语句如下:
/* 创建表TB1 */
create table TB1
(
P1 int,
P2 int
)
/* 表TB1插入数据 */
insert into TB1 (p1,p2) values (1,1);
insert into TB1 (p1,p2) values (2,2);
/* 创建表TB2 */
create table TB2
(
P3 int,
P4 int
)
/* 表TB2插入数据 */
insert into TB2 (p3,p4) values (1,8);
insert into TB2 (p3,p4) values (6,6);
/* 查询 */
select * from TB1
select * from TB2
/* 创建表TB1的单表视图 */
create or replace view vw_tb1_1 as
select p1,p2 from tb1
/* 查询 */
select * from vw_tb1_1
/* 单表视图可以插入 */
insert into vw_tb1_1 (p1,p2) values (3,3);
/* 单表视图可以修改 */
update vw_tb1_1 set p2 = 678 where p1 = 3 ;
/* 单表视图可以删除 */
delete vw_tb1_1 where p1 = 3 ;
/* 创建表TB1的多表视图 */
create or replace view vw_tb1_2 as
select a.p1,a.p2 from tb1 a
left join tb2 b on a.p1 = b.p3
/* 查询 */
select * from vw_tb1_2
/* 无法修改与非键值保存表对应的列 */
insert into vw_tb1_2 (p1,p2) values (3,3);
/* 无法修改与非键值保存表对应的列 */
update vw_tb1_2 set p2 = 678 where p1 = 1 ;
/* 不能从没有一个键值保存表的视图中删除 */
delete vw_tb1_2 where p1 = 3 ;
Create Or Replace Trigger tr_vw_tb1_2_t
Instead Of Insert or update or delete
on vw_tb1_2
for each row
Declare
begin
If Inserting Then
Insert Into tb1 (p1,p2) Values (:New.p1,:New.p2);
Insert Into tb2 (p3,p4) Values (:New.p1,:New.p2);
elsif Updating Then
Update tb1 set p2=:New.p2 where p1=:New.p1;
Update tb2 set p4=:New.p2 where p3=:New.p1;
elsif Deleting then
Delete from tb1 where p1=:Old.p1;
Delete from tb2 where p3=:Old.p1;
End if;
end;
/* OK */
insert into vw_tb1_2 (p1,p2) values (3,3);
/* OK */
update vw_tb1_2 set p2 = 678 where p1 = 1 ;
/* OK */
delete vw_tb1_2 where p1 = 3 ;
/* 创建表TB2的单表视图 */
create or replace view vw_tb2 as
select p3,p4 from tb2
create or replace view vw_tb3 as
select null as p1,null as p2 from dual
/* 创建表TB1的更加复杂的多表视图 */
create or replace view vw_tb1_2 as
select a.p1,a.p2 from vw_tb1_1 a
left join vw_tb2 b on a.p1 = b.p3
left join vw_tb3 c on a.p1 = c.p1
/* 权限不足 */
insert into vw_tb1_2 (p1,p2) values (3,3);
/* 权限不足 */
update vw_tb1_2 set p2 = 678 where p1 = 1 ;
/* 权限不足 */
delete vw_tb1_2 where p1 = 3 ;
oracle视图能增删改,oracle视图的增删改相关推荐
- oracle select with read only,oracle创建视图的一些总结:包括with check option和with read only...
oracle创建视图的一些总结: create [or replace][force | noforce] view [user.] viewName (column [,column2]...) a ...
- oracle怎么把数据跑进视图里,在Oracle中向视图中插入数据的方法
在Oracle中向视图中插入数据的方法 插入视图的条件: 1.如果视图是基于一个基础表产生的,那么这就称为非连接视图,所有的非连接视图都是可以更新的,也就是说可以在该视图上进行,INSERT,UPDA ...
- 银行使用oracle做查询,Oracle EBS ERP银行信息查询视图
Oracle EBS ERP银行信息查询视图 CREATE OR REPLACE VIEW XXX_STD_CE_BANKINFO_V AS SELECT cbau.org_id, cba.accou ...
- oracle雾化试图_Oracle创建物化视图
Oracle创建物化视图 通过Oracle物化视图章节,我们已经了解到Oracle物化视图的作用和创建原理,本节通过实例详细讲解Oracle是如何创建物化视图的. 创建物化视图语法: 语法:creat ...
- java调用oracle删除,使用IDEA对Oracle数据库进行简单增删改查操作
1.1 java中的数据存储技术 在java中,数据库存取技术可分为如下几类: 1.jdbc直接访问数据库 2.jdo(java data object)是java对象持久化的新的规范,也是一个用于存 ...
- mysql. Oracle创建视图,Navicat 教程:Oracle 视图
Navicat for Oracle 视图用于访问一组关联(表),就像一个单一的表,并限制访问.视图也可以用来限制访问行(一个特定表的子集).点击"视图"按钮即可打开视图对象列表. ...
- Oracle 原理: 物化视图,快照,实体化视图。
8i和8i前,oracle 提供了 快照 snapshot ,9i中把其改名为物化视图,也叫实体化视图 materialized View. 在海量数据中,如果只想查询特定的数据,通常会select ...
- Linux怎么调oracle存储,Linux 环境下Oracle安装与调试(四)之视图、存储过程
1.视图的介绍和使用 表和视图的区别,表是占用硬盘空间物理表,而视图可以理解为一个虚表,并不存储在硬盘上, 不占用硬盘空间,实际上就是一个查询语句,方便查询. 对视图里面的数据操作(增 删 改) 其实 ...
- oracle 监控 视图,【转】oracle几个常用的监控视图
[转]oracle几个常用的监控视图 oracle几个常用的监控视图 oracle几个常用的监控视图 v$process视图: v$process视图包含当前系统oracle运行的所有进程信息.常被用 ...
最新文章
- 妲己智能机器人开箱_王者荣耀:妲己第二款史诗限定皮肤周三上架,全局数字流特效一览...
- Flutter开发Flutter与原生OC、Java的交互通信-1(47)
- server2012 r2搭建双DNS
- 牛客网专题 概率dp
- 第4关:HDFS-JAVA接口之删除文件
- 华为交换机一次性进入多个接口_华为交换机交换机常用配置(认证、批量操作)...
- 设置UITableView的separatorInset值为UIEdgeInsetsZero,分隔线不最左端显示的问题
- 3D数学之快速傅立叶变换(Fast Fourier Transform-FFT)
- win32 ——定时器消息 小程序:打印时间
- 【问答】开放领域问答梳理(2)
- K8s-Demo实现
- Hadoop2.0环境搭建
- ubuntu-12.04.4-server安装
- 检测服务器网站端口,检测服务器80端口
- 经常发Email,你知道“抄送(Cc)”、“密送(Bcc)”的意思吗?
- 如何让木马克星能在win2003上免费使用
- 【墨尘】变态心理学(北京大学)
- 2022元宇宙共享大会|倪健中:我们正在开启元宇宙新时代
- 5-(4-氨基苯基)-10,15.20-三苯基卟啉(TPP-NH2)/多金属氧酸盐-四苯基卟啉化合物TPP-PW齐岳供应
- 快应用的用法和常见问题解答(下)
热门文章
- [Spring MVC] - Spring MVC环境搭建
- 从windows server的文件服务到分布式文件服务(一)
- 【百度分享】以太网卡TSO技术浅析
- 2019RPA财务行业峰会:财务数字化转型
- spring MVC做form提交Neither BindingResult nor plain target object for bean name 'command' available...
- android 手机监听屏幕锁屏,用户解锁
- jquery书写左右两个多选下拉列表交换移除功能
- Windows下程序打包发布时的小技巧
- 安卓中事件绑定的写法
- Android init.rc文件格式解析