欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle【定期刷新】的【基于连接】的物化视图

程序员文章站 2022-06-07 11:37:18
...

今天项目中需要创建一个多表连接的物化视图,并且两分钟刷新一次。 Oracle的ORA-02063错误解决方法 http://www.linuxidc.com/Li

今天项目中需要创建一个多表连接的物化视图,并且两分钟刷新一次。

Oracle的ORA-02063错误解决方法

如下图所示:

Oracle【定期刷新】的【基于连接】的物化视图

我的refresh字句选择的刷新方式是force,这种刷新方式会先尝试用fast方式(增量刷新)刷新,不行再用complete方式(完全刷新)刷新。

但是fast方式刷新需要在基表上建立日志(这样fast-刷新方式才能有增量的依据),而我的目标表是在远端机器上(上图我已经把DBlink连接远端表的部分换成了本地的Test1和Test2表)并且不是我们的系统,不让在上面创建日志,所以我这里的force其实实际上会以complete的方式刷新了。。。

另外的的refresh字句的采用WITH PRIMARY KEY选项生成主键物化视图,也就是说物化视图是基于主表的主键,而不是ROWID(对应于ROWID子句).

下面是创建物化视图的refresh字句的语法:

[refresh [fast|complete|force]

[on demand | commit]

[start with date] [next date]

[with {primary key|rowid}]]

===========================================================

我自己又写了一个基于连接的fast的刷新方式的物化视图,,但是有错误:

Oracle【定期刷新】的【基于连接】的物化视图

看样子refresh刷新方式只能基于单表的查询,而不能基于多表的连接查询了。

相关阅读:

Oracle物化视图创建报ORA-00942错误解决

Oracle 存储过程刷新物化视图

Oracle物化视图的使用

物化视图实现 Oracle 数据库表双向同步

Oracle物化视图应用笔记