ORA-30372 细粒度访问策略与物化视图冲突
ORA-30372 fine grain access policy conflicts with materialized view
我正在尝试创建实体化视图,它将 运行 每 6 小时在 DB1 上,并从 DB2 table 复制数据。
我在 DB2 远程 table.
上创建了 MLOG$_REMOTE_TABLE1
我正在使用 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: fine grain access policy conflicts with materialized view
你能告诉我为什么我在 11g 上有这个问题而不是在 12g 上吗(这是 11g 的错误)?
我该如何解决?
我使用
找到了解决方案
REFRESH FORCE ON DEMAND WITH ROWID USING TRUSTED CONSTRAINTS
在我的例子中,我有 table 和 aprox。 100 条记录,它很小 table 所以我可以使用 ROWID。
但是在 Big table 上使用 ROWID 并不是一个好主意,因为它会在整个 table 中搜索行,而 table 的复制将花费很长时间。
您只需要:
按需刷新强制使用受信任的约束。
这样您的查询就可以忽略 Oracle VPD 强加的限制。
我正在尝试创建实体化视图,它将 运行 每 6 小时在 DB1 上,并从 DB2 table 复制数据。 我在 DB2 远程 table.
上创建了 MLOG$_REMOTE_TABLE1我正在使用 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: fine grain access policy conflicts with materialized view
你能告诉我为什么我在 11g 上有这个问题而不是在 12g 上吗(这是 11g 的错误)? 我该如何解决?
我使用
找到了解决方案REFRESH FORCE ON DEMAND WITH ROWID USING TRUSTED CONSTRAINTS
在我的例子中,我有 table 和 aprox。 100 条记录,它很小 table 所以我可以使用 ROWID。 但是在 Big table 上使用 ROWID 并不是一个好主意,因为它会在整个 table 中搜索行,而 table 的复制将花费很长时间。
您只需要: 按需刷新强制使用受信任的约束。
这样您的查询就可以忽略 Oracle VPD 强加的限制。