数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle中如何根据时间来执行JOB


发布日期:2021年10月18日
 
Oracle中如何根据时间来执行JOB
问题假设有一个存储过程p_test如何才能每分钟执行一次?

解答

把initora中如下两个参数打开

JOB_QUEUE_INTERVAL=

JOB_QUEUE_PROCESSES=

job_queue_keep_connections=true

然后重启一个库如果原来已经打开了则不用这步了

示例以下由sqlplus 来执行具体参照一下相关的文档

VARIABLE jobno number;

BEGIN

DBMS_JOBSUBMIT(:jobno

p_test;

SYSDATESYSDATE + /);

commit;

END;

DBMS_JOBSUBMIT(:jobno//job号

your_procedure;//要执行的过程

trunc(sysdate)+///下次执行时间

trunc(sysdate)+/+//每次间隔时间

);

删除job:dbms_jobremove(jobno);

修改job:dbms_jobwhat(jobnowhat);

修改下次执行时间dbms_jobnext_date(jobnext_date);

修改间隔时间dbms_jobinterval(jobinterval);

停止job:dbmsbroken(jobbrokennextdate);

启动job:dbms_jobrun(jobno);

例子

VARIABLE jobno number;

begin

DBMS_JOBSUBMIT(:jobno

Procdemo;

SYSDATE SYSDATE + /);

commit;

end;

上一篇:中小型数据库RMAN CATALOG备份解决办法

下一篇:ORACLE中ROWNUM用法总结!