1、編寫定時任務儲存過程(別的儲存過程太長,貼個觸發器冒充下)
create
orreplace
trigger tru_accept_abnormal_state
--狀態更新觸發器,當已整改時,級聯更新本條記錄的24小時或48小時狀態
before
update
on accept_abnormal
referencing old as old new as new
foreach
rowbegin
if :old.state24h is
notnull
and :new.state = 3
then
:new.state24h :=3;
endif;
if :old.state48h is not null and :new.state = 3 then
:new.state48h := 3;
endif;end;
2.建立排程任務
begin
dbms_scheduler.create_job(
job_name => 'change_state', --任務名稱
job_type => 'stored_procedure', --任務型別
job_action => 'tru_accept_abnormal_state',--任務執行的程式名稱
start_date => '', --開始執行時間
repeat_interval => 'freq=minutely;interval=10',--執行頻率:每分鐘,間隔10秒
end_date => null, --結束時間
enabled => true, --任務建立完畢後是否自動啟用
auto_drop => false, --自動刪除???
comments => '案例任務排程');
--備註,任務說明
end;
3.執行排程任務
begin
dbms_scheduler.run_job('change_state');
end;
4、任務排程查詢
select * from user_scheduler_jobs;
另一種方法,貌似簡單點:
declare
v_job number;
begin
dbms_job.submit(v_job,'proc_zbsjb_jssj;',trunc(sysdate)+1/24,'trunc(sysdate)+1+1/24');
--- 每天凌晨1點執行一次, 從今天開始
commit;
end;
檢視開始的任務:
select * from user_jobs;
刪除任務:
begin
dbms_job.remove(70);
--在user_jobs中查到的id
commit;
--:job可以用dba_jobs.job的值代替如:1198
end;
Oracle任務排程概述
oracle任務排程概述 在oracle中任務排程指某一執行程式在特定的時間被週期性的執行。oracle把任務排程稱為job。而乙個基本的job由兩方面組成program和schedule。其中program指週期性執行的可執行程式,其中可包括pl sql匿名塊,儲存過程 函式 包以及作業系統的可執...
python任務排程例項分析
方法1 import sched,time import os s sched.scheduler time.time,time.sleep scheduler的兩個引數用法複雜,程式設計客棧可以不做任何更改 def playmusic x os.system x def jobtodo tmlis...
Oracle(三)之任務排程
oracle任務排程概述 在oracle中任務排程指某一執行程式在特定的時間被週期性的執行。oracle把任務排程稱為job。而乙個基本的job由兩方面組成 program和schedule 其中program指週期性執行的可執行程式,其中可包括pl sql匿名塊,儲存過程 函式 包以及作業系統的可...