创建三个定时任务,每个小时调用一次REPORT_HOUR,每天调用一次REPORT_DAY,每个月调用一次REPORT_MONTH
DECLARE
JOB1 NUMBER;
JOB2 NUMBER;
JOB3 NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT(JOB => JOB1,
WHAT => 'REPORT_HOUR;',
NEXT_DATE => TO_DATE('01-01-2014 00:00:00',
'dd-mm-yyy hh24:mi:ss'),
INTERVAL => 'sysdate+1/24');
SYS.DBMS_JOB.SUBMIT(JOB => JOB2,
WHAT => 'REPORT_DAY;',
NEXT_DATE => TO_DATE('01-01-2014 00:00:00',
'dd-mm-yyy hh24:mi:ss'),
INTERVAL => 'sysdate+1');
SYS.DBMS_JOB.SUBMIT(JOB => JOB3,
WHAT => 'REPORT_MONTH;',
NEXT_DATE => TO_DATE('01-01-2014 00:00:00',
'dd-mm-yyy hh24:mi:ss'),
INTERVAL => 'TRUNC(LAST_DAY(SYSDATE)+1)');
END;
创建完成后,可通过查询DBA_JOBS表查询当前数据库的定时任务。
SELECT * FROM DBA_JOBS
删除定时任务,通过上一条语句查询要删除任务的JOB字段值,通过此值来删除对应任务。
SYS.DBMS_JOB.REMOVE(JOB1);