2013-10-15 103 views
1

具體日期和工作,我已經工作,用DBMS_JOB,它每天凌晨1:00計劃使用DBMS_JOB

WHAT  PROC_XYZ(); 
    NEXT_DATE 16-OCT-13 
    NEXT_SEC 01:00:00 
    INTERVAL trunc(sysdate)+1+1/24 

運行我想改變它在特定的日期運行(不帶花紋所產生的或固定的間隔),例如:2013年10月30日,2013年11月14日,2013年11月18日

有沒有一種方法可以指定作業運行的日期列表?

回答

2

,但您可以創建所需的作業運行,並檢查當前日期是否是在執行程序之前,這些日期的一個日期列表。只要在過程中執行,RETURN statement就會將控制權返回給調用代碼。

左右,加入這樣的事情你的程序的第一執行行:

if trunc(sysdate) not in (date '2013-10-30', date '2013-11-14') then 
    return; 
end if; 

我可能會使用一個表,而不是日期的列表,所以很容易在不改變代碼來修改。如果你每天運行這個工作,那麼它將在所有日子裏立即退出,但是你希望它完全運行。

這是值得一讀的音符在DBMS_JOB文檔的頂部:

的DBMS_JOB包已被DBMS_SCHEDULER包取代。特別是,如果要管理作業來管理系統負載,則應考慮通過撤銷用戶的程序包執行權限來禁用DBMS_JOB。