qq_28752379 2023-03-29 14:56 采纳率: 62.5%
浏览 8

Oracle12c 创建物化视图,用union就会报错,如何解决?

Oracle12c 创建物化视图,用union就会报错,报错内容:ORA-12054: 无法为实体化视图设置 ON COMMIT 刷新属性
不使用union,给每个单独的sql创建没问题,只要有union就会报错。我用的是增量刷新,commit提交方式。
创建视图的sql内容如下:

create materialized view log on table_A with rowid ;
create materialized view log on table_B with rowid;
create materialized view log on table_C with rowid ;
create materialized view log on table_D with rowid ;

create materialized view VM_SN_APPLY_PARSE_INFO
REFRESH FORCE ON COMMIT
AS

select a.rowid                 as aid,
       b.rowid                 as bid,
       c.rowid                as cid,
       d.rowid                as did,
       .......                       

  from table_A     a,
       table_B     b,
       table_C     c,
       table_D     d
 where a.is_effective = 1
 ......
      
   union 
   
 select  a.rowid                 as aid,
       b.rowid                 as bid,
       c.rowid                as cid,
       d.rowid                as did,
       .......                       

  from table_A     a,
       table_B     b,
       table_C     c,
       table_D     d
  from  table_A     a,
       table_B     b,
       table_C     c,
       table_D     d
 where spd.is_effective = 2
  ......

  • 写回答

2条回答 默认 最新

  • 卑以自牧w 2023-03-29 16:07
    关注

    尝试将刷新属性设置为ON DEMAND或NEVER,或者修改视图定义,确保不包含不支持ON COMMIT刷新的对象。类似于这样

    CREATE MATERIALIZED VIEW mv_name
    REFRESH ON DEMAND
    AS
    SELECT col1, col2, ...
    FROM table1
    UNION
    SELECT col1, col2, ...
    FROM table2;
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 3月29日

悬赏问题

  • ¥15 在微信h5支付申请中,别人给钱就能用我的软件,这个的所属行业是啥?
  • ¥30 靶向捕获探针设计软件包
  • ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
  • ¥20 遥感植被物候指数空间分布图制作
  • ¥15 安装了xlrd库但是import不了…
  • ¥20 Github上传代码没有contribution和activity记录
  • ¥20 SNETCracker
  • ¥15 数学建模大赛交通流量控制
  • ¥15 为什么我安装了open3d但是在调用的时候没有报错但是什么都没有发生呢
  • ¥50 paddleocr最下面一行似乎无法识别