【问题标题】:ORA-30372 fine grain access policy conflicts with materialized viewORA-30372 细粒度访问策略与物化视图冲突
【发布时间】:2018-01-12 00:03:17
【问题描述】:

我正在尝试创建将在 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;

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

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

【问题讨论】:

  • ORA-30372 被抛出,即使 mview 日志没有到位,通过受 VPD 影响的表中的 DB 链接进行完全刷新。

标签: sql oracle replication materialized


【解决方案1】:

您只需要: 使用可信约束,按需刷新力。

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

【讨论】:

    【解决方案2】:

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

    REFRESH FORCE ON DEMAND WITH ROWID USING TRUSTED CONSTRAINTS
    

    就我而言,我有一张带 aprox 的桌子。 100 条记录,这是一个小表,所以我可以使用 ROWID。 但是在大表上使用ROWID并不是一个好主意,因为它会在整个表中搜索行,并且复制表需要很长时间。

    【讨论】:

    • 虽然基本上是一种变通方法,而不是解决我们遇到的问题的方法,但它帮助我们减轻了本地(悲惨)企业 VPD 实施的痛苦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 2017-09-16
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    相关资源
    最近更新 更多