oracle - 如何使用 where day>to_date(20200531) 快速创建物化视图刷新
问题描述
完整代码:
create materialized view log on TABLEAU.GW_STATISTICS
WITH ROWID,
SEQUENCE(AD_ID,day)including new values;
create materialized view log on TABLEAU.GW_CLIENTS
WITH ROWID,
SEQUENCE(id,NAME)including new values;
CREATE MATERIALIZED VIEW MV_CREATIVE_DCO_ADWORDS_2
NOLOGGING
NOCOMPRESS
CACHE
NOPARALLEL
REFRESH FAST ON DEMAND
as
select TABLEAU.GW_STATISTICS.ROWID,
ACC.ROWID,
ACC.NAME,
TABLEAU.GW_STATISTICS.AD_ID,
min(TABLEAU.GW_STATISTICS.DAY),
TABLEAU.GW_STATISTICS.DAY
FROM TABLEAU.GW_STATISTICS,
TABLEAU.GW_CLIENTS ACC
WHERE TABLEAU.GW_STATISTICS.CLIENTID=ACC.ID(+) and TABLEAU.GW_STATISTICS.DAY>TO_DATE('20200531','yyyymmdd')
group by TABLEAU.GW_STATISTICS.ROWID,
ACC.ROWID,
ACC.NAME,
TABLEAU.GW_STATISTICS.AD_ID,
TABLEAU.GW_STATISTICS.DAY;
工作创建物化视图
WHERE TABLEAU.GW_STATISTICS.CLIENTID=ACC.ID(+)
不工作创建物化视图
WHERE TABLEAU.GW_STATISTICS.CLIENTID=ACC.ID(+)
AND TABLEAU.GW_STATISTICS.DAY>TO_DATE('20200531','yyyymmdd')
- 00000 - “无法快速刷新实体化视图 %s.%s” *原因:定义中缺少某些表的 ROWID,或者外部连接的内部表对连接列没有 UNIQUE 约束。*操作:指定 FORCE 或 COMPLETE 选项。如果在创建过程中出现此错误,则物化视图定义可能已更改。请参阅有关物化视图的文档。
为什么我不能按日期添加过滤器?如何绕过这个限制?
解决方案
原因:定义中缺少某些表的 ROWID...
对于初学者,您需要ROWID
在您的选择中包含来自每个表的:
CREATE MATERIALIZED VIEW MV_CREATIVE_DCO_ADWORDS
NOLOGGING
NOCOMPRESS
CACHE
NOPARALLEL
REFRESH FAST ON DEMAND
as
select TABLEAU.GW_STATISTICS.ROWID,
ACC.ROWID,
ACC.NAME,
TABLEAU.GW_STATISTICS.AD_ID,
min(TABLEAU.GW_STATISTICS.DAY),
TABLEAU.GW_STATISTICS.DAY
FROM TABLEAU.GW_STATISTICS,
TABLEAU.GW_CLIENTS ACC
WHERE TABLEAU.GW_STATISTICS.CLIENTID=ACC.ID(+)
AND TABLEAU.GW_STATISTICS.DAY>TO_DATE('20200531','yyyymmdd')
group by TABLEAU.GW_STATISTICS.ROWID,
ACC.ROWID,
ACC.NAME,
TABLEAU.GW_STATISTICS.AD_ID,
TABLEAU.GW_STATISTICS.DAY;
或者外部联接的内部表对联接列没有 UNIQUE 约束。
此外,TABLEAU.GW_STATISTICS.CLIENTID
需要有一个唯一的约束。
推荐阅读
- machine-learning - 岭回归与套索回归
- nativescript - 带有 NativeScript 的文档扫描仪
- php - 需要帮助使用 PHP Preg_match 的正则表达式来验证表单上的数字字段
- python - 在使用 h5py 创建数据集时,是否建议在 gzip 或 lzf 旁边同时使用“shuffle”和“fletcher32”过滤器?
- traefik - 我如何在 docker swarm 中使用 traefik2.0,我不知道应该使用哪些标签
- javascript - 如何使用 preact 进行手动代码拆分?
- r - getRetweeters() 返回一个 id 而 getRetweetCount() 返回 2 -- 在 twitteR 包中
- javascript - JavaScript 传单地图未加载
- php - PHP Post 没有正确接收变量
- php - 如果使用 htacess 重复帖子,如何将用户重定向到最旧的发布帖子