物化视图数据与具有相同源的视图不同

时间:2019-02-09 06:19:44

标签: oracle materialized-views

数据获取的MV与使用完全相同的源sql从视图检索的数据略有不同。从MV提取的数据不准确且不一致。

此外,这些数据在什么情况下会有所不同?我使用了NO CACHE NOLOGGING,也没有MV查看日志。

我有Oracle 10g。尝试删除并重新创建MV,无济于事。传真是VARCHAR2数据类型。

MV是在称为BECRS的视图上创建的。 BECRS视图由一些行组成,这些行通过选择最大值在MV中展平。

CREATE MATERIALIZED VIEW MYROW
TABLESPACE USERS
PCTUSED    0 PCTFREE    10 INITRANS   2 MAXTRANS   255
STORAGE    (INITIAL 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE      0 BUFFER_POOL DEFAULT)
NOCACHE NOLOGGING NOCOMPRESS
BUILD IMMEDIATE
REFRESH FORCE
START WITH ...NEXT ...
WITH PRIMARY KEY AS 
SELECT B_ID || '.' || LANG_ID AS ID, 
       , COMP_ID
       , MAX(TRIM(PHONE_AREA_CODE)) AS PHONE_AREA_CODE
       , MAX(TRIM(BECRS.PHONE)) AS "PHONE"
       , MAX(TRIM(FAX_AREA_CODE)) AS FAX_AREA_CODE
       , MAX(TRIM(FAX)) AS FAX
...
FROM BECRS
GROUP BY SELECT B_ID, LANG_ID, COMP_ID
  1. 在选定的实例中,返回的传真为NULL,而实际的传真为 数据。
  2. 现在,当我使用完全相同的SELECT创建视图时,我得到了 正确的传真数据(最多传真)
  3. 当我直接查询BECRS时,会在展平前得到所有行,并且     有些行包含传真数据,因此最多也可以返回正确的传真。
  4. 这不仅与传真有关,在其他领域也有。
  5. 一次,MV返回了传真,该传真在传真机中不存在     潜在来源。几天后(MV每天刷新),这     不存在的传真从MV中消失了。

0 个答案:

没有答案