在DBMS_JOB.SUBMIT的幫助下,我將一些作業插入到作業隊列中。我們可以在後臺調用DBMS_JOB.RUN嗎?
是否有無論如何,我在後臺使用DBMS_JOB.RUN在後臺運行它們?
我不希望用戶等待DBMS_JOB.RUN。
謝謝!
在DBMS_JOB.SUBMIT的幫助下,我將一些作業插入到作業隊列中。我們可以在後臺調用DBMS_JOB.RUN嗎?
是否有無論如何,我在後臺使用DBMS_JOB.RUN在後臺運行它們?
我不希望用戶等待DBMS_JOB.RUN。
謝謝!
您可以使用DBMS_SCHEDULER作業:
BEGIN
-- Job defined entirely by the CREATE JOB procedure.
DBMS_SCHEDULER.create_job (
job_name => 'YourJobName',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN NULL; /* Your code here*/ END;',
start_date => SYSTIMESTAMP, // run the job as soon as possible
repeat_interval => NULL, // don't repeat the job
end_date => NULL, // ignore this if its not a repeating job
enabled => TRUE,
comments => 'Your comments on and description of the job.');
END;
/
您還可以更改job_type
調用存儲過程或外部可執行文件以及PL/SQL塊。
如果你想查看當前運行的作業,你可以使用:
SELECT JOB_NAME, STATE
FROM USER_SCHEDULER_JOBS;
如果你想view a log of your jobs那麼你可以使用:
SELECT *
FROM USER_SCHEDULER_JOB_LOG
ORDER BY LOG_DATE DESC;
和:
SELECT *
FROM USER_SCHEDULER_JOB_RUN_DETAILS
ORDER BY LOG_DATE DESC;
哪您使用的是Oracle版本嗎? [DBMS_JOB已棄用](http://docs.oracle.com/cd/E11882_01/server.112/e25494/appendix_a.htm#ADMIN11002),因此您最好查看DBMS_SCHEDULER。 –