Oracel雾化视图操作

文章讲述了在检查项目时遇到的物化视图问题,即视图单独执行SQL有数据但查询无数据。作者解释了MATERIALIZED视图的工作原理,介绍了COMPLETE、FAST和FORCE刷新方式的区别,以及刷新物化视图的方法和注意事项,包括主键设置和表删除的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查看老项目问题时,发现一个视图单独执行里面的sql是有数据的,但是查询这个视图却没数据,仔细看了一下创建视图的关键字,发现有MATERIALIZED,原来是物化视图啊,故需要手动刷新一下,方法如下:

**

BEGIN
DBMS_MVIEW.REFRESH (
list => 'V_MIPS_ITEM_DETAIL_INFO',
Method =>'COMPLETE',
refresh_after_errors => True);
end;

**

说明:

V_MIPS_ITEM_DETAIL_INFO 为物化视图的名称;

物化视图有三种刷新方式:COMPLETE、FAST和FORCE
Complete:这种刷新方式会删除表中的所有记录(如果是单表刷新,可能会采用TRUNCATE的方式),然后根据物化视图中查询语句的定义重新生成物化视图。

Fast:这种刷新方式采用增量刷新的机制,只将自上次刷新以后对基表进行的所有操作刷新到物化视图中。必须创建基于主表的视图日志。

Force:Oracle会自动判断是否满足Fast刷新的条件,如果满足则进行Fast刷新,否则进行Complete刷新。

注意:如果物化视图使用的基础表被删除的话,更新物化视图会报找不到表或视图的错误提示,此时物化视图中的数据不会消失。

创建物化视图的语句(需要基础表中设定主键,否则创建不成功):

CREATE MATERIALIZED VIEW V_MIPS_ITEM_DETAIL_INFO
REFRESH FORCE ON DEMAND
 NEXT SYSDATE+1/24/2 
AS
SELECT *  from tableName
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L星火燎原

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值