自動執行oracle儲存過程 job定時器

2021-09-01 01:21:29 字數 1514 閱讀 3962

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 ...