Oracle定時執行預存程序

來源:互聯網
上載者:User

標籤:

 

定時執行預存程序在平時開發中經常會用到,年前的時候自己也做了一個,由於時間關係一直沒能記錄,現記錄下來。 
   
   首先用一個完整的例子來實現定時執行預存程序。 

任務目標:每小時向test表中插入一條資料 

實現方案: 
    1.通過 oracle 中 dbms_job 完成預存程序的定時調用 
    2.在預存程序中完成相應的邏輯操作 

實現步驟: 
  1.建立一個測試表 
create table test(dTime date); 
  
  2.建立一個預存程序 
create or replace procedure p_test as 
begin 
insert into test values(sysdate); 
end; 

  3.建立執行計畫:每小時運行一次預存程序 
Declare 
  i Integer; 
Begin 
   dbms_job.submit(i,‘p_test;‘,Sysdate,‘sysdate+1/24‘); 
end; 

  4.運行執行計畫 
Declare 
  jobno Integer; 
Begin 
-- 尋找計劃號 
Select t.JOB into jobno From User_Jobs t ; 
-- 運行制定的執行計畫 
dbms_job.run(jobno); 
end; 

  5.查看任務隊列情況 
select job,next_date,next_sec,failures,broken from user_jobs; 

  6.查看任務執行情況 
select to_char(dTime ,‘yyyy/mm/dd hh24:mi:ss‘) from test order By dTime; 

  7.停止執行計畫 
Declare 
  jobno Integer; 
Begin 
  -- 尋找計劃號 
  Select t.JOB into jobno From User_Jobs t ; 
  -- 停止計劃,不再繼續執行 
  --dbms_job.broken(jobno,True); 
  -- 停止計劃,並在兩分鐘後繼續執行 
  dbms_job.broken(jobno,True,Sysdate+(2/24/60)); 
end; 

  8.刪除執行計畫 
Declare 
  jobno Integer; 
Begin 
  -- 尋找計劃號 
  Select t.JOB into jobno From User_Jobs t ; 
  dbms_job.remove(jobno); 
end; 

  9.修改執行計畫 
Declare 
  jobno Integer; 
Begin 
  -- 尋找計劃號 
  Select t.JOB into jobno From User_Jobs t ; 
  -- 修改為:每分鐘執行一次 
  dbms_job.interval(jobno, ‘sysdate+1/(24*60)‘); 
end; 

參數說明: 
DBMS_JOB.SUBMIT(jobno =>jobID,//對應的唯一id(jobID <-> jobName)唯一映射 
               procedureName=> ‘your_procedure;‘,  //調用的預存程序名稱 
                 next_date => sysdate,   //下次執行的時間(第一次執行的時間) 
                 interval => ‘sysdate+1/1440‘);  //每次執行間隔的時間 

以上就是定時執行預存程序的全部內容,留待後用吧。

 

http://lafecat.iteye.com/blog/2186568

 

Oracle定時執行預存程序(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.