-.檢視當前任務佇列
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 最...