dbms_job系統包是oracle「任務佇列」子系統的api程式設計介面。dbms_job包對於任務佇列提供了下面這些功能:提交並且執行乙個任務、改變任務的執行引數以及刪除或者臨時掛起任務等。
設定初始化引數來進行的。下面就是該引數:
job_queue_processes = n
其中,n可以是0到36之間的任何乙個數。
名稱
型別
描述
dbms_job.isubmit
過程提交乙個新任務,使用者指定乙個任務號
dbms_job.submit
過程提交乙個新任務,系統指定乙個任務號
dbms_job.remove
過程從佇列中刪除乙個已經存在的任務
dbms_job.change
過程更改使用者設定的任務引數
dbms_job.what
過程更改pl/sql任務定義
dbms_job.next_date
過程更改任務下一次執行時間
dbms_job.interval
過程更改任務執行的時間間隔
dbms_job.broken
過程將任務掛起,不讓其重複執行
dbms_job.run
過程在當前會話中立即執行任務
dbms_job.user_export
過程建立文字字串,用於重新建立乙個任務
dbms_job包引數
名稱
型別
注釋
jobbinary_integer
任務的唯一識別號
what
varchar2
作為任務執行的pl/sql**
next_date
varchar2
任務下一次執行的時間
interval
varchar2
日期表示式,用來計算下一次任務執行的時間
任務重複執行間隔和間隔設計演算法
描述
interval引數值
每天執行一次
'sysdate + 1'
每小時執行一次
'sysdate + 1/24'
每10分鐘執行一次
'sysdate + 10/(60*24)'
每30秒執行一次
'sysdate + 30/(60*24*60)'
每隔一星期執行一次
'sysdate + 7'
不再執行該任務並刪除它
null
定時到特定日期或時間的任務例子
描述
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)'
在plsql中建立儲存過程:
create table test as select * from t_user where user_id is null;
建立任務(在命令視窗):
variable no4 number;
begin
2 dbms_job.submit(job=>:no4,
3 what=>'pro_t1;', --pro_t1是儲存過程
4 next_date=>sysdate,
5 interval=>'sysdate+10/24/60');
6 commit;
7 end;
8 /
select * from user_jobs; --檢視任務
begin
2 dbms_job.remove(23); --刪除任務
3 end;
4 /
oracle 定時任務
在pl sql 中執行命名 第一步 開啟乙個sql window 視窗,建立一張測試表 create table test date a date 第二步 建立儲存過程 create or replace procedure test myproc asbegininsert into test d...
oracle定時任務
1.建立儲存過程 create orreplace procedure proc test isbegin insert into test values 1 2 commit end prc job test 2.建立任務 declare job number begin sys.dbms job...
Oracle定時任務
建立表 create table test carno varchar2 30 carinfoid number 建立儲存過程 create or replace procedure pro test ascarinfo id number begin select s carinfoid.next...