oracle--job以及物化视图

项目需要,用到了物化视图以及job,以前没接触过,就写两个简单例子记录一下。

job的作用是在一定的时间内进行一些操作,执行过程或者是刷新物化视图。

例子:

declare job number;
begin
sys.dbms_job.submit(job=>job,
                                what=>'InsertTable1;',
                                next_date => sysdate,
                                interval => 'sysdate+1/24*60');
commit;
end;

InsertTable1为过程名字,job需要声明,不然就会报错。job=>job,这里不能加冒号:,也会报错,但是如果在plsql里查看这个job的话,不会显示declare那一行,内容也变成了job=>:job,

如果这么创建的话就会报'并非所有变量都已绑定',有点坑;

物化视图的作用主要是可以在视图所查询的表进行更新的时候,刷新该物化视图,可以同步刷新,也可以定时刷新。

例子:

CREATE MATERIALIZED VIEW TABLE1_VIEW
REFRESH FORCE ON DEMAND
START WITH TO_DATE('25-03-2016 16:36:05', 'DD-MM-YYYY HH24:MI:SS')

NEXT SYSDATE+1/(24*60)
AS
SELECT "TABLE1"."A" "A","TABLE1"."B" "B","TABLE1"."C" "C" FROM "TABLE1" "TABLE1" WHERE "TABLE1"."C">'30';

当然下面的查询语句字段都有冒号,在写的时候不用加,ON DEMAND可以在我们需要的时候进行刷新,on commit是在表进行commit的时候就刷新视图,因此是实时的,on demand可以在一定时间内刷新,例子就是从25-03-2016 16:36:05开始,没隔1分钟进行刷新,1/(24*60) 表示1分钟,1/24表示1小时,1/(24*60*60)表示1秒,应该懂这个时间的算法了吧。

简单的记录了一下。

posted @ 2016-03-25 16:41  梦游生  阅读(1917)  评论(0编辑  收藏  举报