--建立測試表
create table test_user(name varchar2(20),age int,addr varchar2(50));
--建立乙個自定義過程
create or replace procedure test_procedureas is
begin
insert into test_user values('張三',23,'北京');
insert into test_user values('張四',33,'上海');
insert into test_user values('張五',53,'北京');
end;
--注意建立乙個job用到的函式是sys.dbms_job.submit()函式
--該函式裡面的第乙個引數是job用來唯一表示job的 ,是out型的,就像procedure中的int相對應的out一樣
--該引數是函式方法返回的引數
declare
test_job number;
begin
sys.dbms_job.submit(test_job,'test_procedureas;',sysdate,'sysdate+10/1440');
end;
--注意建立完畢後要提交事物
commit;
--從user_jobs表裡面查詢job;如果有則說明job建立成功了
select * from user_jobs
--**********************執行job ,25是建立的那個job(user_jobs表中的job欄位)
begin
dbms_job.run(25);
end;
--*********************修改job的間隔時間
begin
dbms_job.interval(25,'sysdate+1');
end;
--*********************刪除job
begin
dbms_job.remove(25);
end;
相關的幾個job操作
8 25 11:30
selectto_char(add_months(sysdate,2),'yyyy-mm-dd') from dual
刪除job:dbms_job.remove(jobno);
修改要執行的操作: job:dbms_job.what(jobno,what);
停止job:dbms.broken(job,broken,nextdate);
啟動job:dbms_job.run(jobno);
每天午夜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)'
注意建立job後需要提交事物
oracle資料庫定時任務
不久前,做的專案中需要用到定時任務 有兩種實現方式 應用程式,資料庫。決定採用資料庫的定時任務。關於資料庫定時任務的資料,網上有很多文章,但當自己在設計時,並沒有僅通過一篇文章就解決問題。於是決定綜合網上資料和自己的專案,寫一篇oracle資料庫自帶的job來實現定時任務。一 定時任務的建立 啟動 ...
oracle資料庫定時任務
常要oracle資料庫定時的自動執行一些指令碼,或做資料庫備份,或做資料的提煉,或做資料庫的效能優化,包括重建索引等等的工作,這時需要用到乙個函式dbms job.submit,來完成oracle定時器job時間的處理上。使用dbms job.submit這個函式,我們只需要考慮兩個事情 安排某一任...
oracle資料庫定時任務
1.定時任務樣例 一 建立乙個表 create table t free twice id number 8 primary key,name nvarchar2 20 二 建立序列 記錄id值 create sequence create sequence t free twice log min...