oracle job執行說明

2021-06-16 05:22:46 字數 1604 閱讀 5071

-.檢視當前任務佇列

select * from dba_jobs t where t.what like 'p_wap_stat_rmsx%'

--what 為執行任務名稱,可以是儲存過程或其它可執行實體

二.執行時間設定

每天午夜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)'

在oracle job間隔時間參考,其中li_jobno是它的id,可以通過這個id停掉這個任務,最後想說的是不要執行多次,你可  以在裡面管理起來,發現已經執行了就不submit

每天執行一次 'sysdate + 1'

每小時執行一次 'sysdate + 1/24'

每10分鐘執行一次 'sysdate + 10/(60*24)'

每30秒執行一次 'sysdate + 30/(60*24*60)'

每隔一星期執行一次 'sysdate + 7'

每年1月1號零時trunc(last_day(to_date(extract(year from sysdate)||'12'||'01','yyyy-mm-dd'))+1)

三.舉例說明

oracle job 工具包 dbms_job

儲存過程:p_wap_stat_rmsx 沒有引數

設定每10分鐘執行一次

以下命令必須在命令視窗執行,如下:

1. 提交job

sql> variable job1 number;

sql> begin

2  dbms_job.submit(:job1,'p_wap_stat_rmsx;',sysdate,'sysdate+1/144');

3  end;

4  /

dbms_job.submit 引數說明:

job為任務唯一數字標識,what為任務描述,如果為儲存過程則為儲存過程名稱需以「;」分號結束

next_date為下次執行時間,interval為執行間隔,可以是以分,秒,小時

dbms_job.submit(job => :jobno2,

what => 'p_post_list;',

next_date => sysdate+1/480,

interval => 'sysdate + 1/480');

2.刪除job

dbms_job.remove(job); 引數為job唯一數字標識

3.立刻執行job

dbms_job.run(job);    引數為job唯一數字標識

oracle job延遲執行

oracle job在執行的時候可能會遇到在設定的週期內不能執行完的情況,即前一次還沒有執行完,又到了下一次執行時間。以下的操作來模擬這種情況,來看一下oracle是怎麼樣處理的。環境 1.建立表 create table t test sid number,dt date 2.建立儲存過程,執行一...

oracle job不執行,定位問題

一.job的執行頻率設定 1.每天固定時間執行,比如早上8 10分鐘 trunc sysdate 1 8 60 10 24 60 2.toad中提供的 每天 trunc sysdate 1 每週 trunc sysdate 7 每月 trunc sysdate 30 每個星期日 next day t...

oracle job欄位說明及定時設定

字段 列 型別 描述 job number 任務的唯一標示號 log user varchar2 30 提交任務的使用者 priv user varchar2 30 賦予任務許可權的使用者 schema user varchar2 30 對任務作語法分析的使用者模式 last date date 最...