JOB的建立,定時,執行

2021-08-15 18:04:11 字數 3820 閱讀 5808

來自:

--建表 

1

2

3

4

5

create table test_job(para_date date);

commit;

insert into test_job values(sysdate);

commit;

select * from test_job;

--建立儲存過程  

1

2

3

4

create or replace procedure test_jobproce   as

begin

insert into test_job values(sysdate);

end test_jobproce;

--建立job 

--建立job後預設是執行的 

1

2

3

4

5

declare  test_job_really number;

begin

dbms_job.submit(test_job_really,'test_jobproce;',sysdate,'sysdate+1/1440');

commit;

end;

執行時間彙總:

1、 每分鐘執行

1

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

2、 每天定時執行

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

1

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

3、 每週定時執行

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

1

interval => trunc(next_day(sysdate,2))+2/24

4、 每月定時執行

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

1

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

5、 每季度定時執行

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

1

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

6、 每半年定時執行

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

1

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

7、 每年定時執行

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

1

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

---停止job  

25是建立的job test_job_really ,可以通過dba_jobs檢視

1

2

3

4

begin

dbms_job.broken(25,true);

commit;

end;

--啟動job 

1

2

3

4

begin

dbms_job.run(25);

commit;

end;

--刪除job 

1

2

3

4

begin

dbms_job.remove(25);

commit;

end;

--檢視執行結果 

1

select  * from test_job order by test_job.para_date desc;

--檢視job 

1

select * from sys.user_jobs

--使用下面的sql查詢是否job還在running,前提是需要job執行時間不能過短 

1

select * from dba_jobs_running

--除了submit引數外,其餘的幾個引數有: 

--執行job

1

dbms_job.run(v_job);

--停止乙個job,裡面引數true也可是false,next_date(某一時刻停止)也可是sysdate(立刻停止)。 

1

dbms_job.broke(v_job,true,next_date);

--刪除某個job 

1

2

dbms_job.remove(v_job);

dbms_job.what(v_job,'sp_fact_charge_code;');

--修改某個job名 修改下一次執行時間 

1

dbms_job.next_date(v_job,sysdate);

-修改job

oracle 建立job定時執行任務

先建立乙個儲存過程 例如 清空乙個表 定義好自己的job declare job1 number begin dbms job.submit job1,pro job delete sysdate,trunc sysdate 1 每天清楚記錄 end 找到你的job,找到對應的job值 select...

建立JOB定時執行儲存過程

建立job定時執行儲存過程有兩種方式 方式1 通過plsql手動配置job,如下圖 方式2 通過sql語句,如下sql declare job opautodta pls integer 宣告乙個jobid begin sys.dbms job.submit job job opautodta,wh...

oracle 建立儲存過程 在job 定時執行

一 建立儲存過程。create or replace procedure upd pickup weight is begin update hk delivercost detail deltdetl set deltdetl.pickup weight select nvl hkpictdetl...