怎樣實現每天自動執行oracle的儲存過程一次

2021-12-30 12:17:54 字數 1795 閱讀 5694

怎樣實現每天自動執行oracle的儲存過程一次

用job

oracle定時器呼叫儲存過程 

1.建立乙個表,為了能清楚看到定時器的運**況我們建立乙個帶有日期欄位的表 

sql** 

create table job_table(run_time date); 

www.2cto.com  

create table job_table(run_time date);

2.建立儲存過程 

sql** 

create or replace procedure job_proc is 

begin 

insert into job_table (run_time) values (sysdate); 

end; 

create or replace procedure job_proc is

begin

insert into job_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; 

declare

job number;

begin

dbms_job.submit(job, 'job_proc;', sysdate, 'trunc(sysdate,''mi'') + 1 / (24*60)');

end/

commit;

4.建立之後自動處於執行狀態,我們查詢job表,看看我們建立的job 

sql** 

select job,broken,what,interval,t.* from user_jobs t; 

select job,broken,what,interval,t.* from user_jobs t; 

job broken what interval ... 

81 n job_proc; trunc(sysdate,'mi') + 1 / (24*60) ... 

引數介紹 

job job的唯一標識,自動生成的 

broken 是否處於執行狀態,n;執行;y:停止 

what 儲存過程名稱 

interval 定義的執行時間 

www.2cto.com  

補充: 

描述 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"))) + (660+10)/(2460)''

Fedora如何實現自動執行

1.在 etc init.d 中建立指令碼,運用如下的格式 bin bash chkconfig 2345 20 80 description description comes here.source function library.etc init.d functions start stop...

MySql在Linux上實現每天自動備份

mkdir jimisun mysqlbackup usr bin mysqldump opt uroot pjimisun hlocalhost test jimisun mysqlbackup db date f sql opt 引數 uroot u資料庫使用者名稱 h資料庫位址 資料庫名 匯出...

Python自動運維系列 每天凌晨定時執行特定任務

import datetime import time defdosth print test 假裝做這件事情需要一分鐘 time.sleep 60 defmain h 0,m 0 h表示設定的小時,m為設定的分鐘 while true 判斷是否達到設定時間,例如0 00 while true no...