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