你好
我的需求是,管理员手动开启一个数据库定时任务,这个任务的执行间隔,也就是interval是可变的,即管理员可随时改变任务的间隔。
因此,我的方案是:
1) 写一个存储过程,该过程写在数据库脚本里,mysql.sql
PROCEDURE proc(Cycle in INTEGER)
IS
e_raise EXCEPTION;
BEGIN
IF p_kversionCycle = 0 THEN
RAISE e_raise;
END IF;
DEL_DBINFO_PACKAGE.JOB_RESET_KCYCLE;
DECLARE
JOB1;
BEGIN
DBMS_JOB.SUBMIT(JOB1, ' task;', SYSDATE, 'SYSDATE + Cycle / (24*60)');
COMMIT;
END;
EXCEPTION
WHEN e_raise THEN
RAISE_APPLICATION_ERROR(-20006,'p_kversionCycle Is 0!');
WHEN OTHERS THEN
RAISE;
END procDRMkversionCycle;
2) 执行mysql.sql创建数据库
3)启动任务
declare fuck number(10);
begin
fuck :=1;
procDRMkversionCycle(fuck);
end;
/