oracle 作业间隔时间公式
在Oracle中,设置作业(例如DBMS_SCHEDULER作业或DBMS_JOB作业)时,可以使用INTERVAL参数来指定作业的间隔时间。对于DBMS_SCHEDULER作业,可以使用以下格式指定间隔:
'SYSDATE + (n/24/60)'
其中n是间隔的分钟数。例如,每天8次的间隔可以这样设置:
'SYSDATE + (480/24/60)'
对于DBMS_JOB作业,可以使用类似的格式,但是需要使用TRUNC(SYSDATE + n/24/60)来指定具体的时间点。
以下是一个创建DBMS_SCHEDULER作业的例子,每20分钟运行一次:
BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'my_job', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN null; END;', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=DAILY; BYMINUTE=0,20,40', -- 每天三次 enabled => TRUE, comments => 'Job to run every 20 minutes'); END; /
对于DBMS_JOB作业,例子如下:
DECLARE job_id NUMBER; BEGIN DBMS_JOB.SUBMIT ( job => job_id, what => 'PACKAGE_NAME.PROCEDURE_NAME;', next_date => TRUNC(SYSDATE) + (CASE WHEN TO_CHAR(SYSDATE, 'MM/DD/YYYY HH24:MI') < '12/31/1899 12:00' THEN 0 ELSE 1/24 END), -- 12点0分开始 interval => 'TRUNC(SYSDATE,''MI'') + 20/24/60' -- 每20分钟 ); COMMIT; END; /
请根据实际情况选择合适的方法创建作业,并调整时间间隔。
好的代码像粥一样,都是用时间熬出来的
浙公网安备 33010602011771号