oracle怎麼實現每天定時執行乙個計畫任務

2021-04-15 07:13:51 字數 2118 閱讀 6509

乙個簡單例子:    

建立測試表  

sql>   create   table   a(a   date);  

表已建立。  

建立乙個自定義過程  

sql>   create   or   replace   procedure   test   as  

2     begin  

3     insert   into   a   values(sysdate);  

4     end;  

5     /  

過程已建立。  

建立job  

sql>   variable   job1   number;  

sql>    

sql>   begin  

2     dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');  --每天1440分鐘,即一分鐘執行test過程一次  

3     end;  

4     /  

pl/sql   過程已成功完成。  

執行job  

sql>   begin  

2     dbms_job.run(:job1);  

3     end;  

4     /  

pl/sql   過程已成功完成。  

sql>   select   to_char(a,'yyyy/mm/dd   hh24:mi:ss')   時間   from   a;  

時間  

-------------------  

2001/01/07   23:51:21  

2001/01/07   23:52:22  

2001/01/07   23:53:24  

刪除job  

sql>   begin  

2     dbms_job.remove(:job1);  

3     end;  

4     /  

pl/sql   過程已成功完成。  

select   job,to_char(next_date,'yyyy-mm-dd   hh24:mi:ss')   from   all_jobs;  

----------job的使用:  

dbms_job.submit(:jobno,//job號  

'your_procedure;',//要執行的過程  

trunc(sysdate)+1/24,//下次執行時間  

'trunc(sysdate)+1/24+1'//每次間隔時間  

);  

刪除job:dbms_job.remove(jobno);  

修改要執行的操作:job:dbms_job.what(jobno,what);  

停止job:dbms.broken(job,broken,nextdate);  

啟動job:dbms_job.run(jobno);  

例子:  

variable   jobno   number;  

begin  

dbms_job.submit(:jobno,    

'procdemo;',//procdemo為過程名稱    

sysdate,   'sysdate   +   1/720');  

commit;  

end;  

-----修改job_queue_processes的值(保證其不為0否則job不自動執行)  

可通過select   *   from   v$parameter;檢視其值;  

方法1,startup   pfile='c:/oracle/ora90/database/initorcl.ora';  

需要修改initorcl.ora檔案的job_queue_processes引數,然後重新啟動資料庫以後才能生效  

方法2,alter   system   set   job_queue_processes=10    

不需要重新啟動資料庫就能生效,系統自動修改init.ora檔案 

oracle怎麼實現每天定時執行乙個計畫任務

可以在儲存過程裡判斷一下當前的時間 select sysdate into sys date from dual 如果在8 00 18 00範圍內就做,如果不在就null 然後提交乙個作業,每一小時做一次。乙個簡單例子 建立測試表 sql create table a a date 表已建立。建立乙...

python定時執行 每天

以下 實現了python的每天定時執行 import datetime import time import pymysql def dosth print test conn pymysql.connect host 192.0.9.169 port 5507,user writer passwd...

oracle實現每天定時執行乙個計畫任務

建立測試表 sql create table a a date 表已建立。建立乙個自定義過程 sql create or replace procedure test as 2 begin 3 insert into a values sysdate 4 end 5 過程已建立。建立job sql ...