无法使用快速刷新创建物化视图

问题描述 投票:0回答:0

最近决定看一下Oracle的快速刷新特性,对一些物化视图进行加速。这是我在遵循 this 我在网上找到的不错的指南后得到的:

  1. 我为定义查询中涉及的每个表创建了物化视图日志
CREATE MATERIALIZED VIEW LOG ON SIGNOS.SA_SUB_BACIA_ESGOTAMENTO WITH ROWID INCLUDING NEW VALUES;
CREATE MATERIALIZED VIEW LOG ON SIGNOS.STATUS_GEOMETRIA WITH ROWID INCLUDING NEW VALUES;
  1. 后来,考虑到快速刷新的所有需求,我写了定义查询
CREATE MATERIALIZED VIEW SIGNOS.MV_SA_SUB_BACIA_ESGOTAMENT_LIM 
REFRESH FAST ON DEMAND AS
    SELECT
    FC.ROWID AS FC_ROWID,
    SG.ROWID AS SG_ROWID,
    FC.ID,
    FC.ID_GIS,
    FC.NOME,
    FC.SIGLA_ANTIGA,
    FC.ACTUALIZADO_POR,
    FC.DATA_INSERCAO,
    FC.CODIGO_SIGAO,
    FC.EXPORTADO,
    FC.SIGLA,
    FC.RE_HISTORICO_CARREGAMENTO_ID,
    FC.AREA_CALCULADA,
    FC.ULTIMA_ACTUALIZACAO,
    FC.INSERIDO_POR,
    FC.LIMITE
FROM
    STATUS_GEOMETRIA SG,
    SA_SUB_BACIA_ESGOTAMENTO FC
WHERE
    SG.TABLE_ROWID (+) = FC.ROWID;

不幸的是,Oracle 在最后一个片段之后不断吐出这个错误:

ORA-12015: cannot create a fast refresh materialized view from a complex query

我的 IDE (DBeaver) 在

FROM
语句之后用红色突出显示第一个表定义 (
STATUS_GEOMETRIA SG,
) 周围的行。

什么可能导致此错误?

TIA

sql oracle performance materialized-views
© www.soinside.com 2019 - 2024. All rights reserved.