免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4600 | 回复: 9
打印 上一主题 下一主题

大家看看这个简单的sql语句 快速刷新物化视图如何建立??? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-20 09:34 |只看该作者 |倒序浏览
如题
select distinct a,b from tab1;

在给定语句上建立快速刷新的物化视图 折腾好久
转换select a ,b,count(*) from tab1 group by a,b;报错说ORA-32401: "**.** 上的实体化视图日志没有新值

论坛徽章:
3
CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43
2 [报告]
发表于 2010-08-20 09:41 |只看该作者
请你贴出详细的步骤


提示信息也很明确啊,说实体化视图日志上没有新的数据需要刷新的

论坛徽章:
0
3 [报告]
发表于 2010-08-20 10:01 |只看该作者
本帖最后由 tianshezi 于 2010-08-20 10:11 编辑

首先感谢你如此快回复

步骤
create materialized log on tab1 with rowid;

ok!

create materialized mv_tab1 refresh fast on commit with rowid as select a,b,count(*) from tab1 group by a,b;
报错ora-32401

创建view时候就报错了

论坛徽章:
0
4 [报告]
发表于 2010-08-20 10:17 |只看该作者
若使用primary key来更新 会有如下报错
SQL>  create materialized view log on tab1 with primary key;

Materialized view log created.

SQL>  create materialized view mv_tab1 refresh fast on commit with primary key as select a,b,count(*) from tab1 group by a,b;

                                                                                                                    *
ERROR at line 1:
ORA-12032: cannot use rowid column from materialized view log on
"SH"."PRODUCTS"

论坛徽章:
3
CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43
5 [报告]
发表于 2010-08-20 10:19 |只看该作者
恩  针对楼主问题做个答复:

1、你的两个步骤中都少了view关键字:

2、报ora-32401的原因是,在快速刷新模式下不能使用聚合函数:

你可以试试这个:

create materialized mv_tab1 refresh fast on commit with rowid as select a,b from tab1;

论坛徽章:
0
6 [报告]
发表于 2010-08-20 10:51 |只看该作者
SQL> create materialized view log on tab1
  2  with rowid,
  3  sequence(a,b)
  4  including new values;

Materialized view log created.

SQL> create materialized view mv_prod refresh fast on commit with rowid
  2  as select a,b,count(*) from tab1 group by a,b;

Materialized view created.


多谢楼上的热情相助 问题解决了 测试成功可以在commit提交后物化视图刷新

论坛徽章:
0
7 [报告]
发表于 2010-08-20 10:53 |只看该作者
恩  针对楼主问题做个答复:

1、你的两个步骤中都少了view关键字:

2、报ora-32401的原因是,在快速刷 ...
duolanshizhe 发表于 2010-08-20 10:19



   
1.哪儿少了view 关键字 没发现 ^_^
2.这样可以完成 但是和原来的sql语句表达意思不一致了.

论坛徽章:
3
CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43
8 [报告]
发表于 2010-08-20 10:59 |只看该作者
恩   我说的是3楼的  不是后面的

论坛徽章:
0
9 [报告]
发表于 2010-08-20 11:08 |只看该作者
回复 8# duolanshizhe


    哦 果然 3楼是我手动写的 不好意思哈
多谢啦 兄弟!!

论坛徽章:
3
CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43
10 [报告]
发表于 2010-08-20 11:09 |只看该作者
恩  客气啊  关键在于解决问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP