本帖最后由 lamb218 于 2014-05-28 17:48:53 编辑

解决方案 »

  1.   

    Setting _MV_REFRESH_USE_STATS to TRUE can cause ORA-12008 / ORA-942 error
    for on-commit XID based refresh检查一下 _MV_REFRESH_USE_STATS 参数的值
      

  2.   

    我在test1用户下创建的物化视图,test1拥有dba权限,test1用户下的A表添加数据没有问题,当时在test2用户下B表添加一条数据,或则修改数据,就报上面的错误,不知道是为什么?
      

  3.   

    alter session set"_mv_refresh_use_stats"=true;
    一样的错误
      

  4.   

    ...应该设成false,在系统级上改试试
      

  5.   

    晕,上面你不是写了么
    alter system set "_mv_refresh_use_stats"=false;
      

  6.   

    晕,上面你不是写了么
    alter system set "_mv_refresh_use_stats"=false;
      

  7.   

    就是正常建的,我估计是不是和我跨用户访问的问题呀,dba权限也应该不存在那个问题还有就是,如果我不采用commit这种方式,使用start with sysdate next 这种定时刷新不报错,但是无法感觉定时器不运行是的,需要手工执行exec dbms_mview.refresh('mv_test','f')才能刷新,奇怪物化视图我第一次用,搞得头大
      

  8.   

    我这里测试没问题
    估计是权限问题,试试
    grant select on test2.mlog$_b to test1;
      

  9.   

    我在网上找了一下,说分布式数据库不用需使用on commit,必须使用on demand,然后手工刷新,或者使用定时job,我晕。说是一个bug
    我看alert log里面出现的test1.mv_test
    Following on-commit snapshots not refreshed :
      

  10.   

    如果我在物化视图里面使用start with SYSDATE,想一分钟刷新一次,alert log日志里面也报错:
    ORA-12012: 鑷姩鎵ц浣滀笟 109 鍑洪敊
    ORA-12018: 鍦ㄥ垱寤ST"."MV_TEST" 鐨勪唬鐮佹椂鍑虹幇浠ヤ笅閿欒
    ORA-00942: 琛ㄦ垨瑙嗗浘涓嶅瓨鍦RA-06512: 鍦YS.DBMS_SNAPSHOT", line 2558
    ORA-06512: 鍦YS.DBMS_SNAPSHOT", line 2771
    ORA-06512: 鍦YS.DBMS_IREFRESH", line 685
    ORA-06512: 鍦YS.DBMS_REFRESH", line 195
    ORA-06512: 鍦ne 1