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.建立job,並且指定為一分鐘執行一次
declare
job number;
begin
dbms_job.submit(job, 'job_proc;', sysdate, 'trunc(sysdate,''mi'') + 1 / (24*60)');
end
commit;
4.建立之後自動處於執行狀態,我們查詢job表,看看我們建立的job
select job,broken,what,interval,t.* from user_jobs t;
引數介紹
job job的唯一標識,自動生成的
broken 是否處於執行狀態,n;執行;y:停止
what 儲存過程名稱
interval 定義的執行時間
5.如何刪除job
根據what的內容確定其對應的job,並如此執行刪除,比如對應的job為101,刪除的方法:
begin
dbms_job.remove(101);
endcommit;
6. 補充
描述 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)''
參考:[url]
[url]
自動執行儲存過程
啟動時自動執行儲存過程 如何在啟動sql server的時候,執行乙個儲存過程?將儲存過程建立在master資料庫中,然後企業管理器中找到這個儲存過程 右鍵 屬性 勾選 每當sql server啟動時執行 或者在master中建立儲存過程後,執行語句設定為自動啟動 use master exec s...
Oracle儲存過程執行許可權
預設情況下,在呼叫儲存過程使用者的角色是不起作用的,即在執行儲存過程時只有public許可權。所以如果被呼叫的儲存過程中如果有execute immediate create table.語句,將會引發ora 01031 insufficient privileges錯誤。儲存過程分為兩種,即dr ...
ORACLE 定時執行儲存過程
推薦用dbms scheduler方式更好 2012 11 19注 查詢 select job,broken,what,interval,t.from user jobs t job job的唯一標識,自動生成的 broken 是否處於執行狀態,n 執行 y 停止 what 儲存過程名稱 next ...