關於ORACLE JOB的分析

2021-08-27 19:10:41 字數 2998 閱讀 1233

1.查詢job資訊

select * from dba_jobs t;

select * from user_jobs t;

相關檢視

dba_jobs    describes all jobs in the database.

user_jobs    describes all jobs owned by the current user

all_jobs

dba_jobs_running     包含正在執行job相關資訊

2.操作job命令

停止某個job

sql> exec dbms_job.broken(1,true);

sql> commit; //必須提交否則無效

啟動某個job

sql> exec dbms_job.broken(1,false);

sql> commit; //必須提交否則無效

停其他使用者的job

sql>exec sys.dbms_job.broken(1,true);

sql>commit;

執行job

dbms_job.run(1);
刪除job

dbms_job.remove(1);
新建job

sql> exec variable job01 number;

sql> exec dbms_job.submit(job => :job01,what => 'p_test;', next_date => sysdate, interval => 'sysdate+1/1440');

//每分鐘執行一次,一天為1440分鐘

修改job

sql> exec dbms_job.change(job => :job01,what => 'p_test;', next_date => sysdate, interval => 'sysdate+1/1440');

3.dba_jobs欄位描述

字段(列)             型別                 描述

job number 任務的唯一標示號

log_user varchar2(30) 提交任務的使用者

priv_user varchar2(30) 賦予任務許可權的使用者

schema_user varchar2(30) 對任務作語法分析的使用者模式

last_date date 最後一次成功執行任務的時間

last_sec varchar2(8) 如hh24:mm:ss格式的last_date日期的小時,分鐘和秒

this_date date 正在執行任務的開始時間,如果沒有執行任務則為null

this_sec varchar2(8) 如hh24:mm:ss格式的this_date日期的小時,分鐘和秒

next_date date 下一次定時執行任務的時間

next_sec varchar2(8) 如hh24:mm:ss格式的next_date日期的小時,分鐘和秒

total_time number 該任務執行所需要的總時間,單位為秒

broken varchar2(1) 標誌引數,y標示任務中斷,以後不會執行

interval varchar2(200) 用於計算下一執行時間的表示式

failures number 任務執行連續沒有成功的次數

what varchar2(2000) 執行任務的pl/sql塊

current_session_label raw mlslabel 該任務的信任oracle會話符

clearance_hi raw mlslabel 該任務可信任的oracle最大間隙

clearance_lo raw mlslabel 該任務可信任的oracle最小間隙

nls_env varchar2(2000) 任務執行的nls會話設定

misc_env raw(32) 任務執行的其他一些會話引數

4.interval引數應用

描述                       interval引數值

每天午夜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定時執行的問題

關於oracle job定時執行的問題?問?我在乙個oracle伺服器上執行乙個job定時執行程式。建立test表 create table test a date 建立myproc儲存過程 create or replace procedure myproc as begin insert int...

oracle job的相關操作

1 在sql中,首先要在資料庫中建立乙個儲存過程pack ywtj.ywtjweek 可以通過sql語句執行,達到新增儲存過程的目的,另外新增儲存過程的方法不贅述。2 在sql中,建立job,使資料庫每隔一段時間執行一次該儲存過程 定時執行job declare njob3 number begin...

oracle job的簡介和例項

每天1點執行的oracle job樣例 declare x number begin sys.dbms job.submit job x,what etl run d date next date to date 2009 08 26 01 00 00 yyyy mm dd hh24 mi ss i...