Oracle Job 語法和時間間隔的設定

2022-08-01 00:15:16 字數 3434 閱讀 3150

初始化相關引數job_queue_processes

alter system set job_queue_processes=39 scope=spfile;//最大值不能超過1000 ;job_queue_interval = 10 //排程作業重新整理頻率秒為單位

job_queue_process 表示oracle能夠併發的job的數量,可以通過語句  

show parameter job_queue_process;

來檢視oracle中job_queue_process的值。當job_queue_process值為0時表示全部停止oracle的job,可以通過語句

alter system set job_queue_processes = 10;

來調整啟動oracle的job。

提交job語法:

begin

sys.dbms_job.submit(job => :job,

what => 'p_clear_packbal;',

next_date => to_date('04-08-2008 05:44:09', 'dd-mm-yyyy hh24:mi:ss'),

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

commit;

end;

/-------------------------

建立job

variable jobno number;

begin

dbms_job.submit(:jobno, 'p_cred_plan;',sysdate,'sysdate+1/2880',true);

commit;

執行job

sql> begin

dbms_job.run(:job1);

end;

/刪除job

sql> begin

dbms_job.remove(:job1);

end;

/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)          任務執行的其他一些會話引數

--------------------------

描述                    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)'

1:每分鐘執行

interval => trunc(sysdate,'mi') + 1/ (24*60)

2:每天定時執行

例如:每天的凌晨1點執行

interval => trunc(sysdate) + 1 +1/ (24)

3:每週定時執行

例如:每週一凌晨1點執行

interval => trunc(next_day(sysdate,'星期一'))+1/24

4:每月定時執行

例如:每月1日凌晨1點執行

interval =>trunc(last_day(sysdate))+1+1/24

5:每季度定時執行

例如每季度的第一天凌晨1點執行

interval => trunc(add_months(sysdate,3),'q') + 1/24

6:每半年定時執行

例如:每年7月1日和1月1日凌晨1點

interval => add_months(trunc(sysdate,'yyyy'),6)+1/24

7:每年定時執行

例如:每年1月1日凌晨1點執行

interval =>add_months(trunc(sysdate,'yyyy'),12)+1/24

Oracle Job 語法和時間間隔的設定

初始化相關引數job queue processes alter system set job queue processes 39 scope spfile 最大值不能超過1000 job queue interval 10 排程作業重新整理頻率秒為單位 job queue process 表示o...

Oracle Job 語法和時間間隔的設定

初始化相關引數job queue processes alter system set job queue processes 39 scope spfile 最大值不能超過1000 job queue interval 10 排程作業重新整理頻率秒為單位 job queue process 表示o...

Oracle Job 語法和時間間隔的設定

初始化相關引數job queue processes alter system set job queue processes 39 scope spfile 最大值不能超過1000 job queue interval 10 排程作業重新整理頻率秒為單位 job queue process 表示o...