DBMS_SCHEDULER.CREATE_JOB ( job_name IN VARCHAR2, job_type IN VARCHAR2, job_action IN VARCHAR2, number_of_arguments IN PLS_INTEGER DEFAULT 0, start_date IN TIMESTAMP WITH TIME ZONE DEFAULT NULL, repeat_interval IN VARCHAR2 DEFAULT NULL, end_date IN TIMESTAMP WITH TIME ZONE DEFAULT NULL, job_class IN VARCHAR2 DEFAULT 'DEFAULT_JOB_CLASS', enabled IN BOOLEAN DEFAULT FALSE, auto_drop IN BOOLEAN DEFAULT TRUE, comments IN VARCHAR2 DEFAULT NULL, credential_name IN VARCHAR2 DEFAULT NULL, destination_name IN VARCHAR2 DEFAULT NULL);
JOB_NAME:指定任務的名稱,必選值,注意要確保指定的名稱唯一。
JOB_TYPE:任務執行的操作類型,必選值,有下列幾個可選值:
PLSQL_BLOCK:表示任務執行的是一個PL/SQL 匿名塊。
STORED_PROCEDURE:表示任務執行的是ORACLE 過程(含PL/SQL PROCEDURE 和JAVA PROCEDURE),本例中正是指定這一參數值。
EXECUTABLE:表示任務執行的是一個外部程序,比如說操作系統命令。
CHAIN:表示任務執行的是一個CHAIN。
JOB_ACTION:任務執行的操作,必選值,應與JOB_TYPE 類型中指定的參數相匹配。比如說對於PL/SQL 匿名塊,此處就可以放置PL/SQL 塊的具體代表,類似DECLARE .. BEGIN ..END這類;如果是ORACLE 過程,那麼此處應該指定具體的過程名,注意由於任務執行,即使過程中有OUT之類參數,實際執行時也不會有輸出的。
START_DATE:指定任務初次執行的時間,本參數可爲空,當爲空時,表示任務立刻執行,效果等同
於指定該參數值爲SYSDATE。
NUMBER_OF_ARGUMENTS:指定該JOB 執行時需要附帶的參數的數量,默認值爲0,注意當JOB_TYPE 列值爲PLSQL_BLOCK 或CHAIN 時,本參數必須設置爲0,因爲上述兩種情況下不支持附帶參數。
END_DATE:指定任務的過期時間,默認值爲NULL。任務過期後,任務的STATE 將自動被修改爲COMPLETED,ENABLED 被置爲FALSE。如果該參數設置爲空的話,表示該任務永不過期,將一直按照REPEAT_INTERVAL 參數設置的週期重複執行,直到達到設置的MAX_RUNS 或MAX_FAILURES 值。
JOB_CLASS:指定任務關聯的CLASS,默認值爲DEFAULT_JOB_CLASS。關於JOB CLASS 的信息就關注本系列的後續文章。
ENABLED:指定任務是否啓用,默認值爲FALSE。FALSE 狀態表示該任務並不會被執行,除非被用戶手動調用,或者用戶將該任務的狀態修改爲TRUE。
AUTO_DROP:當該標誌被置爲TRUE 時,ORACLE 會在滿足條件時自動刪除創建的任務
任務已過期;
任務最大運行次數已達MAX_RUNS 的設置值;
任務未指定REPEAT_INTERVAL 參數,僅運行一次;
該參數的默認值即爲TRUE。用戶在執行CREATE_JOB 過程時可以手動將該標誌指定爲FALSE,當參數值設置爲FALSE 時,即使滿足上述提到的條件任務也不會被自動刪除這種情況下,唯一能夠導致任務被刪除的情況,就是用戶主動調用DROP_JOB 過程。
整理自三思筆記