orace 建立乙個job

2021-06-26 04:51:42 字數 1363 閱讀 2977

declare   

job binary_integer; --任務id

v_begin date; --開始時間

v_interval varchar2(50); --時間間隔

begin

v_begin:=sysdate;--當前時間開始執行

v_interval:= 'trunc(sysdate,''mi'') + 1/ (24*60)'; --每分鐘執行一次, 可以更改

dbms_job.submit(job,

'test_pkg;', --儲存過程名稱

v_begin,

v_interval,

false,

0,false);

commit;

end;

在plsql中的sql視窗執行上面的**段後, 在左邊樹dbms_jobs資料夾裡將自動生成job

v_interval是job執行的頻率, 示例如:

每天午夜12點 'trunc(sysdate + 1)' 

每天早上8點30分 'trunc(sysdate + 1) + (8*60+30)/(24*60)'

每星期二中午12點 'next_day(trunc(sysdate ), ''tuesday'' ) + 12/24'

每個月第一天的午夜12點 'trunc(last_day(sysdate ) + 1)'

每個季度最後一天的晚上11點 'trunc(add_months(sysdate + 2/24, 3 ), 'q' ) -1/24'

每星期六和日早上6點10分 'trunc(least(next_day(sysdate, ''saturday"), next_day(sysdate, "sunday"))) + (6*60+10)/(24*60)'

其中li_jobno是它的id,可以通過這個id停掉這個任務,最後想說的是不要執行多次,你可以在裡面管理起來,發現已經執行了就不submit

每天執行一次 'sysdate + 1'

每小時執行一次 'sysdate + 1/24'

每10分鐘執行一次 'sysdate + 10/(60*24)'

每30秒執行一次 'sysdate + 30/(60*24*60)'

每隔一星期執行一次 'sysdate + 7'

不再執行該任務並刪除它 null

每年1月1號零時 trunc(last_day(to_date(extract(year from sysdate)||'12'||'01','yyyy-mm-dd'))+1)

job的作用是定時呼叫儲存過程



ORACLE如何停止乙個JOB

oracle 如何停止乙個 job dba jobs all jobs user jobs 包含登入使用者所有的 job資訊 dba jobs running 包含正在執行 job相關資訊 注意 須使用oracle 的sys 使用者登入到資料庫,才能檢視 dba jobs running,v pro...

乙個簡單的定時job

因為工作需要,每天半夜定時更新某個字段,就寫了乙個定時任務呼叫乙個儲存過程,都是一些簡單的操作。首先看下儲存過程,create or replace procedure chan contract nowork is begin update basic contract labor set whe...

建立乙個類

c 是一門物件導向的程式語言,而物件導向的基礎就是類 使用c 建立乙個student類 class student 學生類 輸出學生的資訊 void outputstudent void void student input char name,int age,int no void student...