程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> Oracle數據庫中如何根據時間來執行JOB

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

編輯:關於Oracle數據庫

  問題:假設有一個存儲過程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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved