我正在尝试创建物化视图,该视图将在DB1每6小时运行一次,并从DB2表中复制数据。 我在DB2远程表上创建了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:细粒度访问策略与物化视图冲突
请问,请告诉我为什么我在11g上有这个问题,而不是12g(这是11g的错误)? 我该如何解决?
答案 0 :(得分:3)
我使用
找到了解决方案REFRESH FORCE ON DEMAND WITH ROWID USING TRUSTED CONSTRAINTS
在我的情况下,我有aprox表。 100条记录,它是一张小桌子,所以我可以使用ROWID。 但是在Big表上使用ROWID并不是一个好主意,因为它将搜索整个表中的行,并且表的复制将花费很长时间。
答案 1 :(得分:1)
您需要做的是: 刷新需求使用受约束的约束。
这样,您的查询可以忽略Oracle VPD施加的限制。