如何解决带主键的物化视图不起作用
晚安, 我在创建物化视图类型主键时遇到问题,2 个表有主键。如下:表“cotizacion”有两个主键, -fecha -neumatico
表“table_hija1”,有一个主键:“id”
可能是什么问题,我将感谢您的帮助。谢谢,
观察:
-它必须是按需刷新类型
-table_child1,是一个大表,包含来自 50 个小表的数据。无法分割
将它们分成 50 个小桌子。
CREATE MATERIALIZED VIEW LOG ON Cotizacion
WITH primary key
INCLUDING NEW VALUES;
CREATE MATERIALIZED VIEW LOG ON tabla_hija1
WITH primary key
INCLUDING NEW VALUES;
create materialized view vm_prueba3
refresh fast on demand
with primary key
as
select
c.id id1,e.id id2,f.id id3,o.neumatico,o.idproceso,o.fecha,o.precio
from Cotizacion o,tabla_hija1 c,tabla_hija1 e,tabla_hija1 f
where
( o.estado=c.vvalor(+) and c.tipo_filtro=1 )
and
( o.segmento=e.vvalor(+) and e.tipo_filtro=2)
错误:
ORA-12052: no se puede realizar un refrescamiento rápido de la vista materializada SYSTEM.VM_PRUEBA3
- 00000 - “无法快速刷新实体化视图 %s。%s”
*原因:定义中缺少某些表的 ROWID 或
外连接的内表没有 UNIQUE 约束
加入列。
*Action:指定 FORCE 或 COMPLETE 选项。如果出现这个错误
在创建过程中,物化视图定义可能有
变了。请参阅有关物化视图的文档。
解决方法
“定义中缺少某些表的 ROWID”
从文档中,对于带有执行快速刷新按需连接的 MV:
-
每个明细表都必须存在物化视图日志,除非 该表支持分区更改跟踪 (PCT)。另外,当一个 需要物化视图日志,ROWID 列必须存在 在每个物化视图日志中。
-
所有明细表的 rowid 必须出现在物化视图查询定义的 SELECT 列表中。
您需要在物化视图中包含每个源表的 rowid:
CREATE MATERIALIZED VIEW LOG ON Cotizacion
WITH rowid
INCLUDING NEW VALUES;
CREATE MATERIALIZED VIEW LOG ON tabla_hija1
WITH rowid
INCLUDING NEW VALUES;
create materialized view vm_prueba3
refresh fast on demand
with rowid
as
select
c.rowid c_rowid,e.rowid e_rowid,f.rowid f_rowid,o.rowid o_rowid,c.id id1,e.id id2,f.id id3,o.neumatico,o.idproceso,o.fecha,o.precio
from Cotizacion o,tabla_hija1 c,tabla_hija1 e,tabla_hija1 f
where
( o.estado=c.vvalor(+) and c.tipo_filtro=1 )
and
( o.segmento=e.vvalor(+) and e.tipo_filtro=2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。