ORACLE任務排程例項

2021-07-29 10:26:57 字數 1782 閱讀 3690

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匿名塊,儲存過程 函式 包以及作業系統的可...