存儲過程定時器-九游会j9娱乐平台
㈠ oracle中通過存儲過程對表數據進行定時清理
使用pl/sql developer 可以很容易添加定時執行的oracle存儲過程
一個例子:
sql代碼
begin
sys.dbms_job.submit(job => :job,
what => 'rating.job_press;',
next_date => to_date('01-01-4000', 'dd-mm-yyyy'),
interval => 'trunc(sysdate 1)');
sys.dbms_job.broken(job => :job,
broken => true,
next_date => to_date('01-01-4000', 'dd-mm-yyyy'));
commit;
end;
㈡ 怎樣實現每天自動執行oracle的存儲過程一次
用job
oracle定時器調用存儲過程
1.創建一個表,為了能清楚看到定時器的運行情況我們創建一個帶有日期欄位的表
sql代碼
create table job_table(run_time date);
create table job_table(run_time date);
2.創建存儲過程
sql代碼
create or replace procere job_proc is
begin
insert into job_table (run_time) values (sysdate);
end;
create or replace procere 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 定義的執行時間
補充:
描述 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)''
㈢ sql存儲過程是什麼
就是在sql裡面,可以執行的一段程序代碼,就好比軟體開發,就是一段代碼,來處理一些事情,
sql的存儲過程就是一段代碼,來處理一些事情,可以被調用執行,也可以在定時器裡面調用來定時處理