您的位置:首頁技術文章
文章詳情頁

Oracle數據庫中如何根據時間來執行JOB

瀏覽:6日期:2023-11-28 17:52:06
問題:假設有一個存儲過程p_test,如何才能每20分鐘執行一次?

解答:

1、把init.ora中如下兩個參數打開

JOB_QUEUE_INTERVAL=60

JOB_QUEUE_PROCESSES=4

job_queue_keep_connections=true

然后重啟一個庫,如果原來已經打開了則不用這步了

2、示例,以下由sqlplus 來執行,具體參照一下相關的文檔

VARIABLE jobno number;

BEGIN

DBMS_JOB.SUBMIT(:jobno,

’p_test;’

SYSDATE,’SYSDATE + 1/72’);

commit;

END;

DBMS_JOB.SUBMIT(:jobno,//job號

’your_procedure;’,//要執行的過程

trunc(sysdate)+1/24,//下次執行時間

’trunc(sysdate)+1/24+1’//每次間隔時間

);

刪除job:dbms_job.remove(jobno);

修改job:dbms_job.what(jobno,what);

修改下次執行時間:dbms_job.next_date(job,next_date);

修改間隔時間:dbms_job.interval(job,interval);

停止job:dbms.broken(job,broken,nextdate);

啟動job:dbms_job.run(jobno);

例子:

VARIABLE jobno number;

begin

DBMS_JOB.SUBMIT(:jobno,

’Procdemo;’,

SYSDATE, ’SYSDATE + 1/720’);

commit;

end;

標簽: Oracle 數據庫
国产综合久久一区二区三区