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

jib*_*One 4 sql oracle replication materialized

我正在尝试创建实体化视图,该视图将在 DB1 上每 6 小时运行一次,并从 DB2 表中复制数据。我在 DB2 远程表上创建了 MLOG$_REMOTE_TABLE1。

我正在使用 Oracle 11g(ps 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;
Run Code Online (Sandbox Code Playgroud)

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

请告诉我为什么我在 11g 而不是 12g 上有这个问题(它是 11g 的错误)?我该如何解决?

jib*_*One 7

我通过使用找到了解决方案

REFRESH FORCE ON DEMAND WITH ROWID USING TRUSTED CONSTRAINTS
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我有一个带有 aprox 的表。100 条记录,它是一个小表,所以我可以使用 ROWID。但是在大表上使用ROWID并不是一个好主意,因为它会在整个表中搜索行,并且表的复制时间太长。