Sql ORA-30372细粒度访问策略与物化视图冲突

Sql ORA-30372细粒度访问策略与物化视图冲突,sql,oracle,replication,materialized,Sql,Oracle,Replication,Materialized,我试图创建物化视图,它将在DB1上每6小时运行一次,并从DB2表中复制数据。 我已经在DB2远程表上创建了MLOG$\u REMOTE\u表1 我使用的是Oracle 11g(p.s Oracle 12g在执行此脚本时没有问题) 在执行下面的脚本时,我发现一个错误: CREATE MATERIALIZED VIEW REPL_TABLE1 REFRESH FORCE ON DEMAND START WITH SYSDATE NEXT SYSDATE + 6/24 ENABLE QUERY REW

我试图创建物化视图,它将在DB1上每6小时运行一次,并从DB2表中复制数据。 我已经在DB2远程表上创建了MLOG$\u REMOTE\u表1

我使用的是Oracle 11g(p.s Oracle 12g在执行此脚本时没有问题)

在执行下面的脚本时,我发现一个错误:

CREATE MATERIALIZED VIEW REPL_TABLE1
REFRESH FORCE ON DEMAND
START WITH SYSDATE NEXT SYSDATE + 6/24
ENABLE QUERY REWRITE
AS
SELECT * FROM REMOTE_TABLE1_SYN;
ORA-30372:细粒度访问策略与物化视图冲突

你能告诉我为什么我在11g上有这个问题,而不是在12g上(这是11g的一个错误吗)?
我怎样才能解决它呢?

我用

REFRESH FORCE ON DEMAND WITH ROWID USING TRUSTED CONSTRAINTS
就我而言,我有一张带围裙的桌子。100记录,这是一个小表,所以我可以使用ROWID。 但是在一个大表上使用ROWID不是一个好主意,因为它将搜索整个表中的行,并且复制表将花费太长的时间。

您只需要: 使用可信约束按需刷新强制


这样,您的查询就可以忽略Oracle VPD施加的限制。

ORA-30372即使在mview日志不存在的情况下也会被抛出,从受VPD影响的表中通过DB链接进行完全刷新。虽然基本上是一种解决方法,而不是解决问题的方法,但它帮助我们减轻了本地的痛苦(痛苦)企业虚拟专用数据库的实施。