ORACLE實現Job定時計畫任務

2021-08-03 04:59:30 字數 1968 閱讀 4629

在oracle資料庫操作中,有時候我們需要定時的執行某些儲存過程。那oracle如何實現呢?

從oracle 10.1版本開始,oracle開發了乙個新的包dbms_scheduler。這個包就能幫解決我們的定時計畫任務的問題。

1. job建立例項

begin

dbms_scheduler.create_job(job_name => 'job_exwh_bpartner_static',

job_type => 'plsql_block',

job_action => 'declare

io_row number;

io_status number;

vo_sqlerr varchar2(1000);

begin

--呼叫儲存過程

bi_dm.p_f_t_exwh_bparner_static(sysdate, io_row, io_status, vo_sqlerr);

end;',

repeat_interval => 'freq=daily;byhour=15;byminute=00;bysecond=00;interval=1;',

job_class => 'default_job_class',

enabled => true,

auto_drop => false,

comments => '這是個測試');

end;

2.job語句

dbms_scheduler.create_job

3.job引數

job_name: job名稱

job_type: job型別

job_action: job執行動作

repeat_interval:job的計畫

job_class:指定任務關聯的class,預設值為default_job_class

enable: 建立時檢查job有效性

auto_drop: 在job完成之後或者被自動disabled之後job將被自動刪除

comments: 備註

start_date: job生效時間

end_date: job結束時間

4.repeat_interval引數

freq:

yearly:以年單位

monthly:以月單位

weekly:以周單位

daily:以日單位

hourly:以小時單位

minutely:以分單位

secondly:以秒單位

interval: 執行次數

bymonthday:月份中的日期

byday:星期

byhour:小時

byminute:分鐘

bysecond:秒

--查詢該使用者所有job

select * from user_scheduler_jobs;

--查詢正在執行的job

select * from user_scheduler_running_jobs

begin

dbms_scheduler.run_job(use_current_session =>false ,job_name => 'job_exwh_bpartner_static');

end;

begin

dbms_scheduler.drop_job(job_name=>'job_exwh_bpartner_static',force=>false);

end;

force :如果是 false 則如果有其他的 job 在使用這個 schedule 就不會刪除這個 schedule ,如果是 true 則不管有沒有其他 job 使用這個 schedule 都會將這個 schedule 刪除。

Oracle定時計畫快速使用

sqlserver中有相關的定時計畫,可以直接開啟sql server 的任務管理器進行配置,可以方便 快速實現定時執行相應任務。相應的oracle也有對應的定時計畫,只不過沒有乙個很好的圖形介面供使用者去操作。本文主要是為了方便使用者在oracle中快速建立定時計畫,定期執行相應的sql或者儲存過...

spring 定時計畫

定時表示式 cronexpresession的設定格式,附下 字段 允許值 允許的特殊字元 秒 0 59 分 0 59 小時 0 23 日期 1 31 l w c 月份 1 12 或者 jan dec 星期 1 7 或者 sun sat l c 年 可選 留空,1970 2099 表示式 意義 0 ...

Scheduled定時計畫

springboot整合了 scheduled的相關依賴 org.springframework.scheduling.annotation.scheduled 我們只需要直接使用即可。注意 spring的定時任務預設是單執行緒的。如果有多個定時任務,那麼執行起來時間會有問題 這時就需要 開啟多執行...