Oracle中快速创建Job的方法(oracle中创建job)
在Oracle数据库中,Job(任务)是一种可自动执行的程序。它可以在指定的时间或某个事件发生时自动触发执行,节省人力资源并提高生产效率。本文将介绍Oracle中快速创建Job的方法。
创建Job的语法如下:
BEGIN
DBMS_SCHEDULER.CREATE_JOB ( job_name => 'JOB_NAME', -- 任务名称
job_type => 'PLSQL_BLOCK', -- 任务类型 job_action => 'PLSQL_BLOCK', -- 任务动作
start_date => SYSDATE, -- 开始时间 repeat_interval => 'FREQ=DLY;BYHOUR=8;BYMINUTE=0;BYSECOND=0;', -- 重复间隔
end_date => NULL, -- 结束时间 enabled => TRUE, -- 是否启用
comments => 'JOB COMMENTS' -- 备注信息 );
END;
其中,重复间隔(repeat_interval)可以包括以下属性:
1. FREQ:重复频率,例如HOURLY、DLY、WEEKLY等等;
2. INTERVAL:重复间隔,例如1、2、3等等;
3. BYDAY:星期几,例如MON、TUE、WED等等;
4. BYMONTHDAY:月份中的哪一天,例如1、15、31等等;
5. BYHOUR:时间中的哪一个小时,例如8、12、18等等;
6. BYMINUTE:时间中的哪一分钟,例如0、15、30等等;
7. BYSECOND:时间中的哪一秒钟,例如0、30等等。
下面是一个示例,说明如何创建一个每天早上8点自动执行的任务:
BEGIN
DBMS_SCHEDULER.CREATE_JOB ( job_name => 'MY_JOB',
job_type => 'PLSQL_BLOCK', job_action => 'BEGIN MY_PACKAGE.MY_PROCEDURE; END;',
start_date => TRUNC(SYSDATE) + 8/24, -- 今天的8点 repeat_interval=> 'FREQ=DLY;BYHOUR=8;BYMINUTE=0;BYSECOND=0;',
enabled => TRUE );
END;
在这个示例中,任务名称为MY_JOB,类型为PLSQL_BLOCK,动作为调用MY_PACKAGE.MY_PROCEDURE过程。任务每天早上8点开始执行,从今天开始一直持续执行。enabled为TRUE,表示任务已经启用。
除了重复间隔以外,DBMS_SCHEDULER.CREATE_JOB还支持其他的一些参数,例如:
1. job_class:任务所属的类别;
2. credentials:任务执行的凭证;
3. destination_name:执行任务的目标数据库实例;
4. instance_id:执行任务的实例ID;
5. logging_level:记录任务日志的级别;
6. max_flures:任务可以连续失败的最大次数;
7. schedule_name:任务由该计划控制。
在实际使用中,根据需要设置不同的参数即可。
Oracle中快速创建Job的方法非常简单,只需要使用DBMS_SCHEDULER.CREATE_JOB函数即可。通过指定任务名称、类型、动作、开始时间、重复间隔等参数,就可以创建一个自动执行的任务了。在实际使用中,可以根据需要设置不同的参数,以满足不同的需求。