无法创建REFRESH FAST ON DEMAND物化视图

时间:2016-08-24 16:14:17

标签: oracle11g

我有两个数据库HB和DSHB。我正在尝试在DSHB模式中创建REFRESH FAST ON DEMAND物化视图,其中HB是使用dblink和以下代码的远程模式,

CREATE materialized view MV_HB_SYSTEM
BUILD IMMEDIATE
REFRESH FAST
ON DEMAND
WITH PRIMARY KEY
AS 
SELECT DELETED, SYS_NO FROM HB.HB_SYSTEM@HBLINK;

但是在创作中遇到以下错误,

SQL Error: ORA-12018: following error encountered during code generation for "HB"."MV_HB_SYSTEM"
ORA-00942: table or view does not exist

但是在运行查询“SELECT DELETED,SYS_NO FROM HB.HB_SYSTEM@HBLINK;”在单独的连接中工作完美。

我还使用以下代码创建了Materialized View Log, 创建物化视图登录HB_SYSTEM;

我在某个论坛中发现需要授予物化视图日志的SELECT权限,如下所述,

GRANT SELECT ON MLOG$_<tableName> to DSHB;

其中DSHB是将访问日志的帐户(即通过db链接)。

但是当我从HB模式运行此命令时,我收到错误,指出DSHB用户或角色在HB中不可用,并且我无法在HB模式中的物化视图日志上授予SELECT。是否可以直接从远程模式向dblink授予SELECT权限?我的意思是类似下面的HB模式查询。我试过但没有工作。

GRANT SELECT ON MLOG$_<tableName> to HB.HB_SYSTEM@HBLINK;

请建议如何解决ORA-00942错误并创建REFRESH FAST ON DEMAND物化视图。

0 个答案:

没有答案