建立实体化视图出现 无法为实体化视图设置 ON COMMIT 刷新属性;sql语句如下:
create materialized view mv_v_ship_cargo refresh force on commit as 
 SELECT   TRUST_NO
   
     FROM   SHIP_CARGO_TRUST
   UNION ALL
   SELECT    TRUST_NO
    
     FROM   SHIP_CARGO  
这样写出现以上错误
create materialized view mv_v_ship_cargo refresh force on commit as 
 SELECT   TRUST_NO
   
     FROM   SHIP_CARGO_TRUST
这样写没问题   
create materialized view mv_v_ship_cargo refresh force on commit as 
 SELECT   TRUST_NO
   
   FROM   SHIP_CARGO  
这样写也没问题 
请问是什么原因
我加了视图日志
create materialized view log on SHIP_CARGO with rowid, sequence (TRUST_NO) create materialized view log on SHIP_CARGO_TRUST with rowid, sequence (TRUST_NO)

解决方案 »

  1.   

    FROM SHIP_CARGO_TRUST
      UNION ALL
      SELECT TRUST_NO ->错在这里.应为SELECT TRUST_NO from 表
      

  2.   

    create materialized view mv_t_id_name refresh fast as
      2  select id, name, count(*) from t group by id, name;具体什么错误,你贴出来
      

  3.   

    可以创建基于rowid的物化视图,默认是基于primary key的,并且还要加上一个标识列create materialized view mv_v_ship_cargo refresh force on commit with rowid as 
     SELECT TRUST_NO,rowid aid, '1' flag
      FROM SHIP_CARGO_TRUST
      UNION ALL
      SELECT TRUST_NO,rowid bid, '2' flag
      FROM SHIP_CARGO;
      

  4.   


    无法为实体化视图设置 ON COMMIT 刷新属性  这就是错误信息
      

  5.   

    ok谢谢 这个好用 不过不大清楚原理是什么 能给我讲讲 rowid aid, '1' flag 这个是什么意思 ,干啥用的啊