1、oracle-job创建语句:
只需要修改以下语句红色字体部分。
FREQ=DAILY/HOURLY/MINUTELY/MONTHLY-频率可以选择,
若选择FREQ=HOURLY;BYHOUR就去掉
若选择FREQ=MINUTELY;BYHOUR,BYMINUTE就去掉
REPEAT_INTERVAL => 'FREQ=DAILY; INTERVAL=1; BYHOUR=1;BYMINUTE=0;BYSECOND=0', -- 按天,间隔一天,每天1点执行
BEGIN
DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => '自定义的job名称', --JOB名称,根据自己的需要修改
ENABLED => TRUE, --使JOB生效
JOB_TYPE => 'STORED_PROCEDURE', --
JOB_ACTION => '需要调用的存储过程名', --调用的存储过程名
START_DATE => SYSDATE, --开始时间
REPEAT_INTERVAL => 'FREQ=DAILY; INTERVAL=1; BYHOUR=1;BYMINUTE=0;BYSECOND=0', -- 按天,间隔一天,每天1点执行
COMMENTS => '执行代理商清分程序', --注释,可不写
JOB_CLASS => 'DEFAULT_JOB_CLASS',
AUTO_DROP => TRUE
);
END;
2、强制停止正在运行任务
BEGIN
DBMS_SCHEDULER.STOP_JOB(JOB_NAME=>'JOB名称',FORCE=>TRUE);
END;
3、查询job详情
SELECT * FROM dba_scheduler_jobs
若不知道job的名称,想查找某个存储过程的调度任务名可通过以下语句:
SELECT * FROM dba_scheduler_jobs
where JOB_ACTION='存储过程名'