oracle任務job


1)創建測試表

1
create  table  test1(a  date );

2)創建存儲過程

1
2
3
4
5
create  or  replace  procedure  myproc  as
begin
   insert  into  test1  values (sysdate);
end ;
/

3)創建job

1
2
3
4
5
declare  job1 number;
begin
   dbms_job.submit(job1, 'MYPROC;' ,sysdate, 'sysdate+1/1440' );//每分鍾執行一次
   commit ;
end ;

---------------------------或者-------------------------------

1
2
3
4
5
6
7
8
9
declare
   job2 number;
begin
   dbms_job.submit(job       => job2,
                   what      =>  'myproc;' ,
                   next_date => sysdate,
                   interval  =>  'sysdate+1/1440' );
   commit ;
end ;

4)查詢job

1
select  job, broken, what, interval  from  user_jobs t;

    JOB BROKEN WHAT INTERVAL

1 27 N MYPROC; sysdate+1/1440

2 25 N p_auto_del_mobile_gxxj; sysdate+1

3 26 N p_auto_del_mobile_gxxj; sysdate+1

5)運行job

1
2
3
begin
   dbms_job.run(27);
end ;

6)刪除job

1
2
3
begin  
    dbms_job.remove(25);   
end ;

job: 指的是job的id號。比如下面的 23

failures:job執行的時候失敗次數,如果超過了15次,那么broken列將被標為Y,以后就不會運行該job了

broken:默認為N,如果為Y,意味着不再執行該job!

interval:執行job的間隔時間。

what:該job的實際工作

 

sysdate+1/2      每隔12小時執行一次

sysdate+3/1440   每隔 3 分鍾執行一次

trunc(sysdate+1) 每天凌晨

trunc(sysdate+7)  每七天凌晨

trunc(sysdate+30)  每30天凌晨

next_day(trunc(sysdate), ''sunday'')  每周日凌晨

trunc(sysdate+1)+6/24 每天6點

trunc(sysdate+1)+1/3  每天的8點運行

sysdate+30/1440 每30分鍾

trunc(last_day(sysdate)) + 1 每月第一天凌晨

trunc(last_day(sysdate)) + 1 + 8/24 + 30/1440 每月第一天8點半

每天的8點到20點之點,每隔15分鍾運行一次

1
2
3
4
5
6
7
case
          when  to_number(to_char(sysdate,  'hh24' )) >= 8  and
               to_number(to_char(sysdate,  'hh24' )) <= 20  then
           sysdate + 15 / 1440
          else
           trunc(sysdate + 1) + 1 / 3
        end

6-10月份,每隔30天的凌晨開始運行,其余月份每隔一天早上4點運行

1
2
3
4
5
6
7
case
          when  to_number(to_char(sysdate,  'mm' )) >= 6  and
               to_number(to_char(sysdate,  'mm' )) <= 10  then
           trunc(sysdate + 30)
          else
           trunc(sysdate + 1) + 1 / 6
        end
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM