oracle 任務定時執行

2021-09-01 10:13:59 字數 1658 閱讀 4532

oracle 任務定時執行

在oracle可以像sql server那樣建立定時任務.

下面我使用oracle sql建立乙個定時任務.

1.建立乙個簡單的表.

create table testdate

( name varchar2(20),

createdate date

) 2.建立乙個儲存過程.

create procedure proc_addtestdate

as begin

insert into testdate values('abc',sysdate);

end;

3.建立任務

declare

x number;

begin

sys.dbms_job.submit

( job        => x

--執行儲存過程名稱

,what       => 'proc_addtestdate;'

,next_date  => to_date('09-12-2008 00:00:00','dd/mm/yyyy hh24:mi:ss')

,interval   => 'trunc(sysdate+1)'

); end;

其中:

●job:輸出變數,是此任務在任務佇列中的編號;

●what:執行的任務的名稱及其輸入引數;

●next_date:任務執行的時間;

●interval:任務執行的時間間隔。

時間間隔

1)、 每分鐘執行

interval => trunc(sysdate,'mi') + 1 / (24*60)

2)、 每天定時執行

例如:每天的凌晨2點執行

interval => trunc(sysdate) + 1 +2 / (24)

3)、 每週定時執行

例如:每週一凌晨2點執行

interval => trunc(next_day(sysdate,2))+2/24 --星期一,一周的第二天

4)、 每月定時執行

例如:每月1日凌晨2點執行

interval =>trunc(last_day(sysdate))+1+2/24

5)、 每季度定時執行

例如每季度的第一天凌晨2點執行

interval => trunc(add_months(sysdate,3),'q') + 2/24

6)、 每半年定時執行

例如:每年7月1日和1月1日凌晨2點

interval => add_months(trunc(sysdate,'yyyy'),6)+2/24

7)、 每年定時執行

例如:每年1月1日凌晨2點執行

interval =>add_months(trunc(sysdate,'yyyy'),12)+2/24

4.執行任務

begin

sys.dbms_job.run(1);

end;

5.刪除任務

begin

--任務序號

sys.dbms_job.remove(2);

end;

也可參考  介面形式的定時任務

oracle定時執行任務

查詢 select job,broken,what,interval,t.from user jobs t job job的唯一標識,自動生成的 broken 是否處於執行狀態,n 執行 y 停止 what 儲存過程名稱 next date 初次執行時間 interval 執行週期 刪除 begin...

建立oracle定時執行任務

說明 本文乃我的同事陳為的原創 功能說明 實現定時插入資料 此demo 實現每分鐘插入一條資料 1 建立測試 和自增序列 createtabletest idnumber,namevarchar2 100 number,timedate createsequencetest job minvalue...

定時執行Oracle作業任務

img 建立乙個oracle資料表,並建立乙個過程,使一分鐘執行該過程一次。1 建立表。sql create table test mydate date table created.2 建立乙個自定義過程。sql create or replace procedure proc test as 2...