代码如下:
create materialized view log on p_BANK with rowid;
create materialized view log on p_user with rowid;create materialized view MV_bank_user
TABLESPACE  MV_DATA  
BUILD DEFERRED  
refresh fast 
on demand 
start with SYSDATE  
next  SYSDATE  +10
with rowid
as
select yhdm,count(*) num from p_bank,p_user
where scbz=1
and yhdm=area
group by yhdm;
===================================
报错:
ORA-32401: "P_USER" 上的实体化视图日志没有新值
什么原因?如何纠正?谢谢!

解决方案 »

  1.   

    DROP materialized view log on p_BANK; 
    DROP materialized view log on p_user; 
    create materialized view log on p_BANK with rowid (yhdm) including new values; 
    create materialized view log on p_user with rowid (area) including new values; 
    create materialized view MV_bank_user 
    TABLESPACE  MV_DATA  
    BUILD DEFERRED  
    refresh fast 
    on demand 
    start with SYSDATE  
    next  SYSDATE  +10 
    with rowid 
    as 
    select yhdm,count(*) num from p_bank,p_user 
    where scbz=1 
    and yhdm=area 
    group by yhdm; 
      

  2.   

    生生不息:
    试了你的代码,还是出错
    ORA-12033: 不能使用 "P_BANK" 上实体化视图日志中的过滤器列
      

  3.   

    楼主能把p_bank和p_user的表结构给出来吗,没有结构我不知道yhdm,scbz和area都是哪个表的例,在创建物化视图日志时会搞错。
      

  4.   


    CREATE TABLE WGH.P_BANK
    (
      YHDM  VARCHAR2(11 BYTE)                       NOT NULL,
      YHMC  VARCHAR2(30 BYTE)                       NOT NULL,
      SCBZ  VARCHAR2(1 BYTE)                        DEFAULT '0'
    )CREATE TABLE WGH.P_SITENO
    (
      ZONENO  VARCHAR2(5 BYTE),
      BRNO    VARCHAR2(5 BYTE),
      MBRNO   VARCHAR2(5 BYTE),
      NOTES   VARCHAR2(40 BYTE),
      BRTYPE  VARCHAR2(1 BYTE),
      BRCODE  VARCHAR2(10 BYTE)
    )
      

  5.   

    CREATE TABLE P_USER
    (
      USERID         VARCHAR2(22 BYTE),
      CERTID         VARCHAR2(12 BYTE)              NOT NULL,
      STAFFNAME      VARCHAR2(20 BYTE)              NOT NULL,
      PASSWORD       VARCHAR2(20 BYTE)              NOT NULL,
      ADMINSIGN      NUMBER(1)                      NOT NULL,
      RIGHT          NUMBER(2)                      NOT NULL,
      CONFIRMSIGN    NUMBER(1)                      NOT NULL,
      AREA           VARCHAR2(10 BYTE)              NOT NULL,
      UNITNAME       VARCHAR2(30 BYTE)              NOT NULL,
      MAJOR          VARCHAR2(200 BYTE),
      OPTIONAL       CHAR(10 BYTE),
      MAXNUM         INTEGER                        NOT NULL,
      INTERVALTIMES  INTEGER,
      QUERYOUTTIMES  INTEGER,
      MAXPROCESSNUM  INTEGER,
      NUM1           INTEGER,
      NUM2           INTEGER,
      NUM3           INTEGER,
      IP             VARCHAR2(80 BYTE),
      KIND           VARCHAR2(2 BYTE)
    )-------------
    CREATE TABLE P_BANK 

      YHDM  VARCHAR2(11 BYTE)                      NOT NULL, 
      YHMC  VARCHAR2(30 BYTE)                      NOT NULL, 
      SCBZ  VARCHAR2(1 BYTE)                        DEFAULT '0' 
      

  6.   


    DROP materialized view log on p_BANK; 
    DROP materialized view log on p_user; 
    create materialized view log on p_BANK with rowid (yhdm,scbz) including new values; 
    create materialized view log on p_user with rowid (area) including new values; 
    DROP MATERIALIZED VIEW mv_bank_user;create materialized view MV_bank_user 
    TABLESPACE  MV_DATA  
    BUILD DEFERRED  
    refresh fast 
    on demand 
    start with SYSDATE  
    next  SYSDATE  +10 
    with rowid 
    as 
    select a.yhdm,count(*) num from p_bank a,p_user b
    where a.scbz=1 
    and a.yhdm=b.area 
    group by a.yhdm;