任何人都可以通过以下设置告诉我物化视图设置刷新的频率是多少?
按需启动强制执行sysdate + 0 NEXT(round(sysdate)+ 1/24)+ 1
我想我每小时都读它,但我不确定
答案 0 :(得分:7)
SQL> alter session set nls_date_format = 'yyyy-mm-dd :hh24:mi:ss';
Session changed.
SQL> select sysdate from dual;
SYSDATE
--------------------
2008-12-19 :12:18:28
SQL> select (round(sysdate) + 1/24) + 1 from dual;
(ROUND(SYSDATE)+1/24
--------------------
2008-12-21 :01:00:00
答案 1 :(得分:4)
回答你的第一个问题(这会每小时运行一次吗?):
不,由于这个子句,这将在你创建它时运行一次:
START WITH sysdate+0
就个人而言,我认为“+ 0”与现在一样无关紧要。
然后它将在明天凌晨1点运行,因为以下条款:
NEXT (round(sysdate) + 1/24) + 1
“1/24”部分计算的时间是1 am.m.,因为Oracle日期实际上存储为数字,小数部分表示小时,分钟等。语法很好。
答案 2 :(得分:1)
我不是100%确定它在物化视图调度语句中是合法的,但您可能想尝试(可以说)更直观的INTERVAL规范:
round(sysdate) + interval '1 1' day to hour
此处的其他示例:http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements003.htm#SQLRF00221
答案 3 :(得分:0)
我认为使用
NEXT (trunc(sysdate) + 1/24) + 1
更准确