用dbms_scheduler創建job


以前一般使用dbms_job來創建job,oracle10g以后推薦使用dbms_scheduler來創建定時任務,dbms_scheduler功能更為強大。
一個創建job的例子:

begin
sys.dbms_scheduler.create_job(job_name => 'CMDEV.每天執行某件事',
job_type => 'STORED_PROCEDURE',
job_action => 'SP_ExecSomething',
start_date => to_date('01-06-2017 00:00:00', 'dd-mm-yyyy hh24:mi:ss'),
repeat_interval => 'Freq=Daily;Interval=1;ByHour=23;ByMinute=00',
end_date => to_date(null),
job_class => 'DEFAULT_JOB_CLASS',
enabled => true,
auto_drop => false,
comments => '');
end;
/

說明:

1、job_name: 任務名稱
2、job_type:有三種類型,PL/SQL Block、Stored procedure、Executable
3、job_action:根據job_type的不同,有不同的含義
如果job_type指定的是存儲過程,就需要指定存儲過程的名字;
如果job_type指定的是PL/SQL塊,就需要輸入完整的PL/SQL代碼;
如果job_type指定的外部程序,就需要輸入script的名稱或者操作系統的指令名
4、start_date:開始時間
5、repeat_interval:運行的時間間隔,上面例子是每天23點運行一次
6、end_date:到期時間
7、enabled:創建后自動激活
8、auto_drop:默認true,即當job執行完畢都到期是否直接刪除job
9、comments:備注

 

導出job的定義語句:

SELECT dbms_metadata.get_ddl( 'PROCOBJ', '每天執行某件事') FROM dual


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM