用dbms_scheduler创建job

来源:互联网 发布:虚拟物品自动发货源码 编辑:程序博客网 时间:2024/04/27 01:11
以前一般使用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