自动执行存储过程中如何设置执行时间
这是每分钟执行
------------------
declare
jobno number;
begin
dbms_job.submit(jobno,'pro;',sysdate,'sysdate+1/1440');
commit;
end;
-------------------
可是我想每天23:56执行
怎么写
'sysdate+1/1440'这种为什么表示为每分钟
1440=24×60
设好起始时间,时间间隔设为一天
dbms_job.submit(jobno,'pro;',TRUNC(SYSDATE+1)-4/1440,TRUNC(SYSDATE+1)-4/1440);
如果是10g,建议用DBMS_JOB的升级功能DBMS_SCHEDULER,其创建方法为
SQL code
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name=>'AUTO_EXEC_PROCEDURE', --job名称,自己设
job_type=>'STORED_PROCEDURE', --类型为存储过程
job_action=>'PROC', --存储过程名称为proc
start_date=>'TRUNC(SYSDATE+1)-4/24/60', --开始执行时间
enabled=>TRUE, --自动启用
repeat_interval=>'FREQ=DAILY;BYHOUR=23;BYMINUTE=56') --每天执行,在23点,56分
END;
/
使用oem设置最简单
SQL code
dbms_job.submit(:jobno,'pro;',sysdate,'trunc(sysdate+1)+((23*60+56)/24*60)');
这个就应该是每天23:56执行。