目錄
1、爲什麼要添加定時器?
和linux中的crontab一樣,來執行一些需要定期執行的一些操作;
2、創建oracle定時器需要幾步?
三步:
1)準備sql;
2)創建存儲進程,即函數;
3)創建定時器,定時去執行此函數;
3、舉個例子?
準備sql:
1)準備sql
UPDATE ceshi SET error_count = 0 WHERE a = 1 AND b = 2;
2)創建存儲進程
PS:切記切記,不可存在空格,不然會報錯的,一定要檢查,尤其是結尾處,絕對不要存在空格,我在此處卡了整整一天。
CREATE OR REPLACE PROCEDURE UPDATE_COUNT IS -- UPDATE_COUNT:函數名稱
BEGIN
UPDATE ceshi SET error_count = 0 WHERE a = 1 AND b = 2; -- 具體要執行的sql
commit;
END;
3)創建定時器,定時去執行此函數
DECLARE UPDATE_COUNT_time number; -- UPDATE_COUNT_time:給函數定義的工作空間
BEGIN
SYS.DBMS_JOB.SUBMIT(
job => UPDATE_COUNT_time, -- 調用工作空間
what => 'UPDATE_COUNT;', -- 工作空間中執行的函數
next_date => SYSDATE, -- 下一次執行的時間,不要改,貌似是這樣子,不太確定
interval => 'sysdate+300/86400'); -- 每隔5分鐘執行一次
commit;
End;
定時時間可以參考:https://www.cnblogs.com/lcword/p/5622966.html
4、查看定時器
SELECT job, next_date, next_sec, failures, broken FROM user_jobs;