資料庫技術學習
介紹orcale定時器的簡單用法,希望大家一看就能明白
1.建立乙個表,為了能清楚看到定時器的運**況我們建立乙個帶有日期欄位的表
sql**
createtablejob_table(run_timedate);
2.建立儲存過程
sql**
createor
replaceprocedurejob_procis
begin
insertintojob_table (run_time)values(sysdate);
end;
3.建立job,並且指定為一分鐘執行一次
sql**
declare
job number;
begin
dbms_job.submit(job, 'job_proc;', sysdate, 'trunc(sysdate,'
'mi'
') + 1 / (24*60)');
end/
commit;
4.建立之後自動處於執行狀態,我們查詢job表,看看我們建立的job
sql**
selectjob,broken,what,interval,t.*fromuser_jobs t;
jobbroken
what
interval
...81
njob_proc;
trunc(sysdate,'mi') + 1 / (24*60)
...
引數介紹
jobjob的唯一標識,自動生成的
broken
是否處於執行狀態,n;執行;y:停止
what
儲存過程名稱
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)''
5.我們查詢一下表job_table看看裡面的資料
sql**
select*fromjob_table
run_time
2011-7-1 下午 05:21:14
2011-7-1 下午 05:22:04
2011-7-1 下午 05:23:04
6.停止job,停止成功之後檢視user_jobs表的broken是否變為y值了
sql**
begin
dbms_job.broken(81,true);
end;
commit;
7.啟動job,啟動成功之後檢視user_jobs表的broken是否變為n值了
sql**
begin
dbms_job.run(81);
end;
commit;
8.刪除job、儲存過程、表
sql**
deleteuser_jobswherejob=81;
dropprocedurejob_proc
droptablejob_table 資料庫技術學習
oracle定時器呼叫儲存過程
介紹orcale定時器的簡單用法,希望大家一看就能明白 1.建立乙個表,為了能清楚看到定時器的運 況我們建立乙個帶有日期欄位的表 sql create table job table run time date 2.建立儲存過程 sql create orreplace procedure job ...
Oracle定時器呼叫儲存過程
關於oracle定時器呼叫儲存過程的一點總結,如果有不足的地方,希望大家多多指導,也是第一次在部落格上寫東西,以前也只是自己總結之後放在硬碟了,後來同事告訴自己,其實寫部落格可以獲得很多,不管是知識閱歷還是交朋友,所以也是抱著試試的心態,希望看到這篇部落格的朋友能對你有所幫助,謝謝。廢話不多說,開噴...
Oracle定時器呼叫儲存過程
1.建立表 create table job table run time date 2.建立儲存過程 create or replace procedure job proc is begin insert into job table run time values sysdate end 3....