oracle中關於定時器的建立與刪除

2021-05-25 08:52:38 字數 2157 閱讀 3083

1、把init.ora中如下兩個引數開啟

job_queue_interval=60

job_queue_processes=4

job_queue_keep_connections=true

//位置位於:d:/oracle/admin/orcl/pfile下的init.ora檔案內

2、定義job

sql>variable m number;

sql>begin

dbms_job.submit(:m,『insert into attend (kq_id,user_id,date_time) select kq_id.nextval,id,sysdate from rs_ygb;』,sysdate,『sysdate+1』);

commit;

end;

/ pl/sql 過程已成功完成。

或者已連線。

sql>variable m number;

sql>begin

dbms_job.submit(:m,『insert into attend(kq_id,user_id,date_time) select kq_id.nextval,id,sysdate from rs_ygb a,atten

d b where a.id !=b.user_id and to_char(b.date_time,'yyyy/mm/dd')!=to_char(sysdate,'yyyy/mm/dd');',sysdate,『sysdate+1』);

commit;

end; /

3、系統提示執行成功。   sql> print :n;

4、 如上,我們建立了乙個每隔4分鐘執行一次的任務號為300的任務。可以通過oracle提供

的資料字典user_jobs察看該任務的執**況:

sql> select job,next_date,next_sec,failures,broken from user_jobs;

執行結果如下:

job next_date next_sec failures broken

300 2000/10/10 11:45:15 0 n

這表示任務號為300的任務,下一次將在2000/10/10 11:45:15執行,此任務的執行失敗

記錄為0次。注意:當執行job出現錯誤時,oracle將其記錄在日誌裡,失敗次數每次自動加1

。當執行失敗次數達到16時,oracle就將該job標誌為broken。此後,oracle不再繼續執行它

,直到使用者呼叫過程dbms_job.broken,重新設定為not broken,或強制呼叫dbms_job.run來

除了以上我們討論的submit儲存過程之外,oracle還提供了其他許多儲存過程來操作任務

。例如:dbms_job.change 、 dbms_job.what、dbms_job.interval可以用來修改提交的任務

。要想刪除該任務,只需執行dbms_job.remove(n)即可,其中n為任務號。5、

一般在執行語句的前面加exec

刪除job:dbms_job.remove(jobno);

修改job:dbms_job.what(jobno,what);

例如:exec dbms_job.next_date(1,to_date('2006-03-01 00:00:00','yyyy/mm/dd hh24:mi:ss'))

刪除job:dbms_job.remove(jobno);

修改job:dbms_job.what(jobno,what); 6、

3、常見的時間函式

30分鐘:(sysdate+1)/48

1個小時:(sysdate+1)/24

一天:sysdate+1

乙個星期: sysdate+7

每個星期五中午:

next_day(trunc(sysdate),'星期五') + 12/24

乙個月:add_months(sysdate,1) --可以為正負數

一年:add_months(sysdate,12)

月份加減:select to_char(add_months(sysdate,-1),'yyyymm') from dual;

日期加減:select to_char(sysdate-1,'yyyymmdd') from dual;

oracle中建立定時器

建立定時器 create or replace procedure p test job is 判斷任務是否已被建立,若任務被建立過,則 i ist 0 i ist number 0 歸檔任務標識 jobid number begin select count into i ist from all...

Oracle建立定時器

建立日誌資訊表 測試表 create table t log id number,datetime date 插入測試資料 insert into t log values 1,25 5月 2006 檢視日誌資訊 select from t log 建立刪除日誌資訊的儲存過程 create or r...

Oracle中的定時器

oracle中的定時器 begin sys.dbms job.submit job job,what check err next date trunc sysdate 23 24,interval trunc next day sysdate,星期五 23 24 commit end 其中 job...