今天更新一个新添加的视图,提示如标题的错误,更详细的如下:
错误报告 -
ORA-12008: 实体化视图的刷新路径中存在错误
ORA-01732: 此视图的数据操纵操作非法
ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2558
ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2771
ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2740
ORA-06512: 在 line 2
12008. 00000 - "error in materialized view or zonemap refresh path"
*Cause: Table SNAP$_<mview_name> reads rows from the view
MVIEW$_<mview_name>, which is a view on the master table
(the master may be at a remote site). Any
error in this path will cause this error at refresh time.
For fast refreshes, the table <master_owner>.MLOG$_<master>
is also referenced.
*Action: Examine the other messages on the stack to find the problem.
See if the objects SNAP$_<mview_name>, MVIEW$_<mview_name>,
<mowner>.<master>@<dblink>, <mowner>.MLOG$_<master>@<dblink>
still exist.
具体解决方案如下:
SQL> alter system set "_COMPLEX_VIEW_MERGING"=true;
系统已更改。
SQL> alter system set "_SIMPLE_VIEW_MERGING"=true;
系统已更改。
再次执行sql,OK!没有再报错了
于是将_complex_view_merging全局设置为true, alter system set "_complex_view_merging" = true scope=both;