定时执行存储过程

--创建计划,使JOBNO和存储过程关联
DECLARE 
    JOBNO INTEGER;
BEGIN
    DBMS_JOBS.SUBMIT ( JOBNO, 'PRO_NAME;', SYSDATE, 'SYSDATE+1/24' );
END;

--DBMS_JOB.SUBMIT参数说明
DBMS_JOB.SUBMIT (
JOBNO => JOBID,        --对应的唯一 ID ( JOBID <-> JOBNAME)唯一映射 
PROCEDURENAME => 'YOUR_PROCEDURE;',        --调用的存储过程名称 
NEXT_DATE => SYSDATE,       --下次执行的时间 (第一次执行的时间) 
INTERVAL => 'SYSDATE+1/(24*60)' );      --每次执行间隔的时间

--执行、停止、删除计划
--方式一、查询出JOBNO,到cmd执行 SELECT * FROM USER_JOBS; EXEC DBMS_JOB.RUN(JOBNO);
--方式二、直接SQL执行 DECLARE JOBNO INTEGER; BEGIN -- 查找计划号 SELECT JOB INTO JOBNO FROM USER_JOBS; --执行计划 DBMS_JOB.RUN(JOBNO); -- 停止计划,不再继续执行 DBMS_JOB.BROKEN(JOBNO,TRUE); -- 停止计划,并在两分钟后继续执行 DBMS_JOB.BROKEN(JOBNO,TRUE,SYSDATE+(2/24/60)); --删除计划 DBMS_JOB.REMOVE(JOBNO) END;
原文地址:https://www.cnblogs.com/ls11736/p/9235154.html