您的位置:首页 > 其它

MV做成时,发生ORA-12018与ORA-00942错误

2014-03-04 12:55 337 查看
先吐槽一下,不知道开发的人怎么想的。非要在不DBLINK关系的用户间,做一个MV。

其实,发生上面的问题的原因是很简单的,听完他们的想法,之后1分钟就搞定了。
开发组现在的机器上有一个DBLINK。两边都已经设定了。现在的想法是想把主表一侧的另一个
用户(u01.test01)的表,作为主表,做一个MV。

但这时就有一个问题,就是这个用户不在这个DBLINK中。
需要给它授权,开发组的人中把下面的权限受给DBLINK的用户(u02)了。
grant select on u01.test01 to u02;

其实,正常做成MV时,应该把使用的表(test01)及与其相关的log表的权限都受给
DBLINK用户(u02)。

解决方法:
就是把log表的权限也给了DBLINK用户(u02)。

検証結果:
--解决方法的命令执行前
SQL> create materialized view mv04 refresh fast as select * from test02.tab04@cn11;
create materialized view mv04 refresh fast as select * from test02.tab04@cn11
*
行1でエラーが発生しました。:
ORA-12018: "CN31TEST"."MV04"のコード生成中に次のエラーが発生しました。
ORA-00942:表またはビューが存在しません。

--解决方法实施后
SQL> create materialized view mv04 refresh fast as select * from test02.tab04@cn11;

マテリアライズドビューが作成されました。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MV ORA-12018 ORA-00942