最近看到ORACLE数据库里面的一些视图和物化视图,里面总有一些内容视图图标上带有红叉叉。
一般来说这种情况表示这些视图不可用,但为何可以查询出数据来呢?红叉叉表示什么意思呢?

解决方案 »

  1.   

    红叉表示是失效的对象。select status from user_objects;
    用这个SQL可以查到状态,如果是invalid就是红叉。存储过程和物化视图在执行时,如果是invalid的,会先编译一次再执行。编译之后状态就变成valid了,再执行,所以可以查询出数据。
      

  2.   

    查过了,有红叉,未进行编译,状态还是INVALID,但还是可以查询出数据的。
      

  3.   


    在plsql界面里面,你edit进去,重新编译下,红叉叉就会不见了啊!
      

  4.   

    oracle物化视图是根据select * from table where  语句创建的视图。
    当物化视图创建后,物化视图里的数据量不会变化,当你向基表table中插入新数据时,只要这些新数据符合物化视图的where条件,但是物化视图里没有这些数据,这时物化视图就会显示红叉。只要对物化视图做刷新操作,红叉就会消失。
      

  5.   

    请问是刷新下,还是recompile?
      

  6.   

    数据可以查,但是物化视图上面出现红叉叉,并且刷新日志里面显示success,此时只需recompile和执行一下红叉叉就会消失。