2008-12-19 24 views
5

bất cứ ai có thể cho tôi biết mức độ thường xuyên một cái nhìn vật chất được thiết lập để làm mới với plz thiết lập sau đây?oracle materialized xem làm mới thời gian

REFRESH LỰC VỀ CẦU BẮT ĐẦU VỚI sysdate + 0 TIẾP THEO (tròn (sysdate) + 1/24) + 1

tôi nghĩ rằng tôi đọc nó như mỗi giờ nhưng tôi không chắc chắn

Trả lời

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 
4

Để trả lời câu hỏi đầu tiên của bạn (sẽ chạy này một lần một giờ?):

Nope, điều này sẽ chạy một lần khi bạn tạo ra nó vì điều khoản này:

START WITH sysdate+0 

Cá nhân, tôi nghĩ rằng "+0" là không liên quan, như bây giờ là bây giờ.

Sau đó, nó sẽ chạy vào ngày mai lúc 1 giờ sáng, vì mệnh đề sau:

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

Các "1/24" phần tính toán khi 1:00 là, kể từ ngày Oracle đang thực sự được lưu trữ như số, với phần thập phân cho biết giờ, phút, v.v. Cú pháp chỉ là tốt.

+0

1 cho một lời giải thích chi tiết hơn. Để làm rõ hơn, vòng (sysdate) cung cấp cho bạn MM/DD/YY @ 12:00:00. + 1/24 (một giờ) làm cho giá trị MM/DD/YY @ 01:00:00. +1 (một ngày) làm cho giá trị MM/DD + 1/YY 01:00:00. – craig

0

tôi nghĩ rằng sử dụng

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

là chính xác hơn

Các vấn đề liên quan