《job篇》如何创建定时任务job
原文链接:https://blog.csdn.net/xlp789/article/details/98586077
1.创建表;2.创建存储过程;3.创建Job ;4.定时执行查看结果。
1.创建空表test(设置name,age,time,uuid四个字段)
2.创建存储过程,注意一定要提交(commit)
create or replace procedure pc_test as
begin
insert into test values ('leopold','30',sysdate,sys_guid());
commit;
end pc_test;
3.创建job(Freq=MINUTELY;Interval=5每五分钟执行一次)
begin
sys.dbms_scheduler.create_job(job_name => 'GIS.TEST_JOB',
job_type => 'STORED_PROCEDURE',
job_action => 'pc_test',
start_date => to_date('06-08-2019 9:10:00', 'dd-mm-yyyy hh24:mi:ss'),
repeat_interval => 'Freq=MINUTELY;Interval=5',
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:备注
数据循环周期设置与实例:
0
1.每周5的时候运行,以下3条实现功能一样
REPEAT_INTERVAL => 'FREQ=DAILY; BYDAY=FRI';
REPEAT_INTERVAL => 'FREQ=WEEKLY; BYDAY=FRI';
REPEAT_INTERVAL => 'FREQ=YEARLY; BYDAY=FRI';
2.每隔一周运行一次,仅在周5运行
REPEAT_INTERVAL => 'FREQ=WEEKLY; INTERVAL=2; BYDAY=FRI’;
3.每月最后一天运行
REPEAT_INTERVAL => 'FREQ=MONTHLY; BYMONTHDAY=-1';
4.在3月10日运行
REPEAT_INTERVAL => 'FREQ=YEARLY; BYMONTH=MAR; BYMONTHDAY=10’;
REPEAT_INTERVAL => 'FREQ=YEARLY; BYDATE=0310';
5.每10隔天运行
REPEAT_INTERVAL => 'FREQ=DAILY; INTERVAL=10’;
6.每天的下午4、5、6点时运行
REPEAT_INTERVAL => 'FREQ=DAILY; BYHOUR=16,17,18’;
7.每月29日运行
REPEAT_INTERVAL => 'FREQ=MONTHLY; BYMONTHDAY=29’;
8.每年的最后一个周5运行
REPEAT_INTERVAL => 'FREQ=YEARLY; BYDAY=-1FRI’;
9.每隔50个小时运行
REPEAT_INTERVAL => 'FREQ=HOURLY; INTERVAL=50’;
4.查看结果