迅闻网
让更多人看到你

oracle视图(oracle视图失效原因)

  oracle视图

视图是一个虚拟表,视图并不在数据库中存储数据值,数据库中只在数据字典中存储对视图的界说。
1:什么是视图
视图也被称为虚表,即虚拟的表,是一组数据的逻辑表明,其本质是对应一条select句子,结果集被赋予一个名字,即视图的名
字。视图本身并不包括任何数据,只包括映射到基表的一个查询句子,当基表数据发生变化时,视图数据也会随之变化。
2:创立视图的办法
create[orreplace]viewview_name[alias]
assubquery;
3:视图创立后能够像操作基表相同操作视图
语法中的subquery是select查询句子,对应的表被称为基表;
4:视图的品种
根据视图所对应的子查询分:
1:select句子是根据单表树立的,且不包括任何函数运算,表达式或分组函数,叫做简略视图,此视图是基表的子查询。
2:select句子是根据单表树立的,且包括函数,表达式,分组函数或groupby子句,叫做杂乱视图。
3:select句子是根据多表树立的,叫做衔接视图。
5:视图的效果
a:简化杂乱查询
b:束缚数据访问,对基表中的其他列起到束缚和维护效果;
6:授权创立视图
创立是视图的DDL句子为,createview,用户有必要有createview系统权限,才干创立视图。假如没有权限,创立视图会提
示:权限缺乏。
管理员能够经过DCL句子颁发用户创立视图的权限,句子为:grantcreateviewtotarena;
7:查询视图
查询视图和查询表的操作相同,此时视图的列明和创立视图时的列名共同,不一定是原基表列名。
select*from视图名;
8:对视图进行insert操作
视图不包括任何数据,仅仅基表数据的逻辑映射。所以当对视图进行dml操作时,实际上是对基表数据的dml操作,对视图进行
dml操作的原则是:
1:简略视图能够履行dml操作,下列状况除外:在基表中定义了非空列,但是简略视图对应的select句子并没有包括这个
非空列,导致这个非空列对视图不可见,这时无法对视图进行insert操作。
2:若视图包括了函数,表达式,分组句子,distinct关键字或rownum伪劣,不允许履行dml操作
3:dml操作不能违反基表的束缚条件。
9:创立具有checkoption束缚的视图
语法如下:
create[orreplace]viewview_name[alias]
assubquery
withcheckoption;
其中withcheckoption短语表明,经过视图所做的修正,有必要在视图可见的范围内。
1:假定insert,新增的记载在视图仍可查看;
2:假定update,修正后的结果有必要能经过视图查看到;
3:假定delete,删去的记载仅限于当下视图能查到的记载;
10:创立具有readonly束缚的视图
对简略视图进行dml操作是合法的,但是不安全,假如没有在视图上进行都没了操作的必要,在树立视图时声明为只读来避免
这种状况,保证视图对应的基表数据不会被不合法修正。
参加readonly束缚的语法
create[orreplace]viewview_name[alias]
assubquery
withreadonly;
此时对视图进行dml操作将会报错。
11:创立杂乱视图
a:创立杂乱视图有必要为视图中的函数或者表达式定义别名;
b:杂乱视图不允许dml操作,否则会报错;
c:删去视图dropviewview_name,对视图的删去不会影响基表数据。

 

oracle

 

  oracle视图失效原因

现象:oracle数据库视图无效
查询数据库invalid的对象:
SELECTCOUNT(DISTINCTALO.OBJECT_NAME)
FROMALL_OBJECTSALO
WHEREALO.OWNER=USER
ANDALO.OWNERNOTIN(‘SYS’,’SYSTEM’)
ANDALO.OBJECT_NAMENOTIN(‘PAK_ALL_COMPILE’)
ANDALO.OBJECT_TYPEIN(‘FUNCTION’,’PROCEDURE’,’VIEW’,’PACKAGE’,’PACKAGEBODY’,’TRIGGER’)
ANDALO.STATUS=’INVALID’;
解决思路:视图是建立在表的基础上,视图无效只有可能是表的物理结构改变了,当视图涉及到这个表
的时分,对应的视图就会无效,这时分需要重新compile
编译invalid的方法:用pl/sqldelveloper东西或用“编译invalid_object.sql”脚本。
现象原因:因为一个朋友在部署的时分,运行了一个sql文件致使增加一个表的列

未经允许不得转载:迅闻网 » oracle视图(oracle视图失效原因)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

迅闻网-让更多人看到你

登录/注册返回首页