Oracle

Oracle 作業調度問題

  • April 27, 2022

我有一個在 Oracle 19c 上刷新物化視圖刷新組的工作。我想每天午夜刷新組 - trunc(sysdate)?這項工作是使用以下 PL/SQL 完成的:

 BEGIN
 DBMS_REFRESH.MAKE (
       name => 'REFG_1',
       list => '', 
       next_date => trunc(sysdate), 
       interval => 'SYSDATE + 1',
       implicit_destroy => FALSE, 
       rollback_seg => '',
       push_deferred_rpc => TRUE, 
       refresh_after_errors => FALSE);
 END;
 /

MV每天都在更新。但是,它們在上午 11:26 刷新(這與我最初創建該作業的時間一致)。

如何創建此作業以確保它在每晚午夜刷新?

間隔應該是trunc(sysdate)+1指明天的午夜。

next_date將被評估到今天(過去)午夜,因此第一次刷新將盡快發生。您可能希望這也是明天午夜

當上一個作業完成時,評估您的作業的下一個​​執行時間(SYSDATE+1在您的情況下)。因此,它將越來越多地轉移。

如果您有更多自由,可以使用TRUNC(SYSDATE)+1或更改為現代調度程序作業。

引用自:https://dba.stackexchange.com/questions/311330