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

2021-04-03 02:50:00 字數 1494 閱讀 9261

可以在儲存過程裡判斷一下當前的時間

select sysdate into sys_date from dual;

如果在8:00--18:00範圍內就做,如果不在就null;

然後提交乙個作業,每一小時做一次。

乙個簡單例子:

建立測試表

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的使用:

-----修改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怎麼實現每天定時執行乙個計畫任務

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

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