关于物化视图使用的疑问

batora 2012-03-13 03:28:38
最近因为需求关系要弄一个物化视图,原本要将多行单列转为单行单列的表存在视图中,可是物化视图不支持group by跟
rownum,因此没办法on commit来进行实时更新。

于是想请教下,我如何在不修改语句的情况下达到实时更新这张视图?
麻烦详细说明。。只有最后这点分了。这是我用来创建的SQL语句。
物化视图日志也已经创建,主键设好了已经。


--物化视图创建
CREATE MATERIALIZED VIEW MV_RFF
BUILD IMMEDIATE
AS
SELECT MST_ID, TRANSLATE (LTRIM (TEXT, '/'), '*/', '*,') RESEARCHERLIST
FROM (SELECT ROW_NUMBER () OVER (PARTITION BY MST_ID ORDER BY MST_ID,
LVL DESC) RN,
MST_ID, TEXT
FROM (SELECT MST_ID, LEVEL LVL,
SYS_CONNECT_BY_PATH (C1_1154_2,'/') TEXT
FROM (SELECT MST_ID, C1_1154_2 AS C1_1154_2,
ROW_NUMBER () OVER (PARTITION BY MST_ID ORDER BY MST_ID,C1_1154_2) X
FROM EDIFACT_SEG_RFF
ORDER BY MST_ID, C1_1154_2) A
CONNECT BY MST_ID = PRIOR MST_ID AND X - 1 = PRIOR X))
WHERE RN = 1
ORDER BY MST_ID;
...全文
110 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiyiwan 2012-03-14
  • 打赏
  • 举报
回复
试试看wmsys.wm_concat
mg_chen 2012-03-14
  • 打赏
  • 举报
回复
要做到Commit时刷新需要很多限制条件的,估计你的SQL是不满足那些条件了。
如果实效性要求不是那么高的话,可以采用JOB方式或者手工调用存储过程DBMS_MVIEW.REFRESH(物化视图)的方式进行物化视图的刷新。
batora 2012-03-13
  • 打赏
  • 举报
回复
为什么总没人回答我。。。

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧