oracle-DBMS_JOB使用笔记 发表于 2019-10-08 分类于 oracle 用于提交定时任务 基础使用123456789declare job number;begin dbms_job.submit( job =>job, what=>'PROC1;PROC2;', next_date => sysdate, -- 初次执行时间 interval =>'TRUNC(SYSDATE + 1))';--每天凌晨同步一次 commit;end; 一些实例 1234DBMS_JOB.SUBMIT(JOB => job_id, WHAT => 'pkg_platform_data_upload_yibo.tb_cis_consult(trunc(sysdate - 1));', NEXT_DATE => TRUNC(sysdate) + 1 +1/(24), INTERVAL => 'TRUNC(sysdate) + 1 +1/(24)'); 查询已创建的任务1select * form user_jobs 删除任务1EXEC DBMS_JOB.REMOVE(123); 使用存储过程执行示例12345678910111213141516171819202122create or replace procedure proc_auto_exec_job asbegin declare job number; BEGIN DBMS_JOB.SUBMIT( JOB => job, /*自动生成JOB_ID*/ WHAT => 'proc_test_job;', /*需要执行的过程或SQL语句*/ /*NEXT_DATE => sysdate, */ /*初次执行时间,立刻执行*/ /*INTERVAL => 'sysdate+3/(24*60*60)' */ /*执行周期 -每3秒钟*/ NEXT_DATE => TRUNC(SYSDATE+1)+(0*60+30)/(24*60), /*初次执行时间,12点30分*/ INTERVAL => 'TRUNC(SYSDATE+1)+(0*60+30)/(24*60)' /*每天12点30分*/ ); COMMIT; /*dbms_job.submit(job, 'proc_test_job;', sysdate, 'trunc(sysdate,''mi'')+1/(24*60)'); /*执行周期 -每1分钟*/ commit;*/ DBMS_JOB.RUN(job); end;end proc_auto_exec_job;begin proc_auto_exec_job; end;