利用oracle job定時向某個表插入資料

duduyey發表於2015-06-24
建立儲存過程

CREATE OR REPLACE PROCEDURE test01_proc  IS
BEGIN
  INSERT INTO juaicai.test01 values(1);
  COMMIT;
EXCEPTION
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('Exception happened,data was rollback');
    ROLLBACK;
END;

定製定時執行任務

var job_num number;
 begin
    dbms_job.submit(:job_num,'test_proc;',SYSDATE,'sysdate+2/24/60');
 end;


檢視定時任務

select * from dba_jobs

刪除定時任務

exec dbms_job.remove(81);


設定定時時間

每天執行一次 'SYSDATE + 1'
每小時執行一次 'SYSDATE + 1/24'
每10分鐘執行一次 'SYSDATE + 10/(60*24)'
每30秒執行一次 'SYSDATE + 30/(60*24*60)'
每隔一星期執行一次 'SYSDATE + 7'
不再執行該任務並刪除它 NULL



描述 INTERVAL引數值
每天午夜12點 'TRUNC(SYSDATE + 1)'
每天早上8點30分 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
每星期二中午12點 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
每個月第一天的午夜12點 'TRUNC(LAST_DAY(SYSDATE ) + 1)'
每個季度最後一天的晚上11點 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
每星期六和日早上6點10分 'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'











來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28719055/viewspace-1710816/,如需轉載,請註明出處,否則將追究法律責任。

相關文章