本⽂使⽤dbms_scheduler的create_job创建执⾏存储过程的定时任务创建⼀个job
job_type指定'STORED_PROCEDURE'job_action中填⼊要执⾏的存储过程名字
start_date指定起始时间,⽤于计算后续执⾏的时间repeat_interval说明时间间隔,可以参考。
BEGIN
dbms_scheduler.create_job(
job_name => 'test_scan',
job_type => 'STORED_PROCEDURE', job_action => 'p_task_scan_used_test', start_date => sysdate,
repeat_interval=> 'FREQ=MINUTELY;INTERVAL=10');END;
创建后通过系统视图检查
select * from user_scheduler_jobs;
取消AUTO_DROP
默认会在任务正确执⾏完成后删除任务,此处修改该属性不删除。
begin
dbms_scheduler.set_attribute( name => 'test_scan', attribute => 'AUTO_DROP', value => FALSE);end;
执⾏时传⼊参数
设置参数个数
begin
dbms_scheduler.set_attribute( name => 'mac_scan',
attribute => 'NUMBER_OF_ARGUMENTS', value => 2); end;
设置参数值
begin
dbms_scheduler.SET_JOB_ARGUMENT_VALUE ( job_name => 'test_scan', argument_position => 1, argument_value => '1000'); end; begin
dbms_scheduler.SET_JOB_ARGUMENT_VALUE ( job_name => 'test_scan', argument_position => 2, argument_value => '5000'); end;
测试job是否可以正确执⾏
select * from user_scheduler_job_run_details;select * from user_scheduler_job_log;
启动定时任务
begin
dbms_scheduler.enable( name => 'test_scan');end;
⾄此,定时任务部署完毕。-- EOF --
因篇幅问题不能全部显示,请点此查看更多更全内容