ORACLE视图和物化视图 红叉叉

xtxjx 2010-04-28 02:16:09
最近看到ORACLE数据库里面的一些视图和物化视图,里面总有一些内容视图图标上带有红叉叉。
一般来说这种情况表示这些视图不可用,但为何可以查询出数据来呢?红叉叉表示什么意思呢?
...全文
2292 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
FAO0321 2012-01-09
  • 打赏
  • 举报
回复
物化视图出现红叉叉后 他本身还进行数据同步么?
wyan117 2011-12-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 huojianfashe 的回复:]

oracle物化视图是根据select * from table where 语句创建的视图。
当物化视图创建后,物化视图里的数据量不会变化,当你向基表table中插入新数据时,只要这些新数据符合物化视图的where条件,但是物化视图里没有这些数据,这时物化视图就会显示红叉。只要对物化视图做刷新操作,红叉就会消失。
[/Quote]
数据可以查,但是物化视图上面出现红叉叉,并且刷新日志里面显示success,此时只需recompile和执行一下红叉叉就会消失。
zhugefung 2011-03-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 huojianfashe 的回复:]
oracle物化视图是根据select * from table where 语句创建的视图。
当物化视图创建后,物化视图里的数据量不会变化,当你向基表table中插入新数据时,只要这些新数据符合物化视图的where条件,但是物化视图里没有这些数据,这时物化视图就会显示红叉。只要对物化视图做刷新操作,红叉就会消失。
[/Quote]
请问是刷新下,还是recompile?
QKForex 2010-05-12
  • 打赏
  • 举报
回复
oracle物化视图是根据select * from table where 语句创建的视图。
当物化视图创建后,物化视图里的数据量不会变化,当你向基表table中插入新数据时,只要这些新数据符合物化视图的where条件,但是物化视图里没有这些数据,这时物化视图就会显示红叉。只要对物化视图做刷新操作,红叉就会消失。
lqb2002 2010-05-10
  • 打赏
  • 举报
回复
2楼正解~~~!!!
ypfe23 2010-04-28
  • 打赏
  • 举报
回复
失效肯定用不了,可以查出结果肯定不是叉,刷新一下对象看看!
ojuju10 2010-04-28
  • 打赏
  • 举报
回复
你查询的时候,会编译一下,所以可以查询出来
oraclemch 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 xtxjx 的回复:]
最近看到ORACLE数据库里面的一些视图和物化视图,里面总有一些内容视图图标上带有红叉叉。
一般来说这种情况表示这些视图不可用,但为何可以查询出数据来呢?红叉叉表示什么意思呢?
[/Quote]

在plsql界面里面,你edit进去,重新编译下,红叉叉就会不见了啊!
xtxjx 2010-04-28
  • 打赏
  • 举报
回复
查过了,有红叉,未进行编译,状态还是INVALID,但还是可以查询出数据的。
iqlife 2010-04-28
  • 打赏
  • 举报
回复
红叉叉肯定代表该视图有问题,
是不是物化视图进行刷新的时候出错

首先检查是不是基表做了变动,例如增加字段,变更字段导致物化视图更新出现问题

可以查数据是因为他是真实表,存在数据的
codearts 2010-04-28
  • 打赏
  • 举报
回复
红叉表示是失效的对象。

select status from user_objects;
用这个SQL可以查到状态,如果是invalid就是红叉。

存储过程和物化视图在执行时,如果是invalid的,会先编译一次再执行。编译之后状态就变成valid了,再执行,所以可以查询出数据。

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧