我經常在SQL Server上創建一些作業來定時執行一些相關任務,在Oracle數據庫下一般都是通過相關編碼的方式,通過某些項目自帶的實際計劃任務框架去對存儲過程進行調用。今天才發現,原來Oracle下創建一個計劃任務要比SQL Server簡單的多。
1、創建計劃任務:
Sql代碼
- X NUMBER;
- GIN
- SYS.DBMS_JOB.SUBMIT(job => X,
- what => 'PROC_YKTSJTB;',
存儲過程名稱
- next_date => trunc(sysdate+5/1440,'MI'),
下次執行時間
- interval => 'trunc(sysdate+1440/1440,''MI'')',
間隔時間
- no_parse => FALSE);
- SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
- COMMIT;
- D;
- X NUMBER;
- BEGIN
- SYS.DBMS_JOB.SUBMIT(job => X,
- what => 'PROC_YKTSJTB;',
存儲過程名稱
- next_date => trunc(sysdate+5/1440,'MI'),
下次執行時間
- interval => 'trunc(sysdate+1440/1440,''MI'')',
間隔時間
- no_parse => FALSE);
- SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
- COMMIT;
- END;
以上主要注意三個參數:
what :需要計劃任務執行的動作;
next_date:下次計劃任務執行的時間,具體時間可以根據Oracle數據庫的trunc構造;
interval:計劃任務的執行周期;
2、計劃任務執行情況監控
Sql代碼
- select * from user_jobs;
查看調度任務
- select * from dba_jobs_running;
查看正在執行的調度任務
- select * from dba_jobs;
查看執行完的調度任務 ,上述的相關內容就是對為Oracle數據庫增加相應的計劃任務的描述,希望會給你帶來一些幫助在此方面。