我有两个数据库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;”在单独的连接工作完美 .
我还使用以下代码创建了物化视图日志,CREATE实体化视图登录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物化视图 .