在oracle 12cR1里新建了一個定時啟動的JOB,開始是設定了END_DATE,但執行到一半時間的時候,通過命令,將END_DATE清空了,
預計這個job,是應該會一直運行下去的,但還是在原來設定END_DATE的時間點停掉了,報的log資訊是 REASON="End time reached",
然后job的Enabled也變成了false
如果此時在plsql developer里將Enabled強制設定為true,job也執行一次后會停止。
但如果等到第二天,再去設定Enabled設定為true,job就會重新開始,然后一直運行下去了。
不知道這個是設定的問題,還是ORACLE的問題?
創建JOB的代碼
BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => 'JOB_3357',
JOB_TYPE => 'STORED_PROCEDURE',
JOB_ACTION => 'PROD_TEST',
START_DATE => to_date('2019-05-05 11:03:00',
'yyyy-mm-dd hh24:mi:ss'),
REPEAT_INTERVAL => 'FREQ= SECONDLY;INTERVAL=30',
END_DATE => to_date('2019-05-05 12:00:00',
'yyyy-mm-dd hh24:mi:ss'),
AUTO_DROP => FALSE,
COMMENTS => null);
END;
/
begin
sys.dbms_scheduler.enable(name => 'JOB_3357');
end;
/
清空END_DATE的代碼
BEGIN
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE('JOB_3357', 'END_DATE', '');
END;
/
另外,清空END_DATE的代碼,也用過to_date(null),效果也是一樣的
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/44733.html
標籤:開發
上一篇:oracle及linux常用指令
