oracle物化视图刷新时间

发布于 2024-07-11 08:51:13 字数 124 浏览 8 评论 0原文

有人能告诉我使用以下设置将物化视图设置为刷新的频率吗?

按需刷新力从 sysdate+0 NEXT (round(sysdate) + 1/24) + 1 开始,

我想我每小时都会读一次,但我不确定

anyone able to tell me how often a materialized view is set to refresh with the following setting plz?

REFRESH FORCE ON DEMAND START WITH sysdate+0 NEXT (round(sysdate) + 1/24) + 1

i think i read it as every hour but i'm not sure

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

说好的呢 2024-07-18 08:51:13
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
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
被你宠の有点坏 2024-07-18 08:51:13

回答你的第一个问题(这会每小时运行一次吗?):

不,这会在你创建它时运行一次,因为这个子句:

START WITH sysdate+0 

就我个人而言,我认为“+0”是无关紧要的,就像现在一样。

那么它将在明天凌晨 1 点运行,因为有以下子句:

NEXT (round(sysdate) + 1/24) + 1

“1/24”部分计算凌晨 1 点的时间,因为 Oracle 日期实际上存储为数字,小数部分表示小时、分钟等。语法就很好了。

To answer your first question (will this run once an hour?):

Nope, this will run once when you create it because of this clause:

START WITH sysdate+0 

Personally, I think the "+0" is extraneous, as now is now.

Then it will run tomorrow at 1 a.m., because of the following clause:

NEXT (round(sysdate) + 1/24) + 1

The "1/24" part calculates when 1 a.m. is, since Oracle dates are actually stored as numbers, with the decimal part indicating hours, minutes, etc. The syntax is just fine.

梦明 2024-07-18 08:51:13

我不能 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

I'm not 100% sure that it's legal in a materialized view scheduling statement, but you might like to try the (arguably) more intuitive INTERVAL specification:

round(sysdate) + interval '1 1' day to hour

Other examples here: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements003.htm#SQLRF00221

断肠人 2024-07-18 08:51:13

我认为使用

NEXT (trunc(sysdate) + 1/24) + 1

更准确

i think using

NEXT (trunc(sysdate) + 1/24) + 1

is more accurate

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文