學習Oracle環境中job建立

來源:互聯網
上載者:User

Oracle中job的建立:

create table date_log(create_date date constraint create_date_pk primary key);

create or replace procedure create_date_log_row
 is
 begin
   insert into date_log(create_date)values(sysdate);
   end;
   /
  
定期調用create_date_log_row  預存程序相date_log 表中插入資料

Job_queue_processes=2  :執行job時候引起的進程數 (最小值是0,最大值是36) 0表示不運行 job

job_queue_interval=30  :範圍在1~3600之間,單位是秒,定期喚醒進程,判斷有沒有要執行的job,這裡時間是30秒

alter system set Job_queue_processes=0;

alter system set Job_queue_processes=5;

dbms_job.submit(:jobno,'create_date_log_row',trunc(sysdate)+1/24,'trunc(sysdate)+1/24+1')

jobno:job編號

create_date_log_row :要執行的預存程序名

trunc(sysdate)+1/24 :下次執行的時間

'trunc(sysdate)+1/24+1' :每次間隔時間

job:dbms_job.remove(jobno); 移去job號

job:dbms_job.what(jobno,what);修改job號

dbms_job.next_date(job,next_date) :修改下次執行的時間

dbms_job.interval(job,interval)   :修改間隔時間
 
job:dbms_job.broken(job,true)     :停止job

job:dbms_job.broken(job,false,next_date)   next_date:下次執行時間,如果不填則馬上啟動job

job:dbms_job.run(jobno);

第一步:建立任務

SQL>VAR job1 number;  --儲存job號碼

SQL>begin
    dbms_job.submit(:job1,'create_date_log_row;',sysdate,'sysdate+1/1440');
    commit;
    end;

SQL>PRINT job1;

select * from date_log;

--查看job參數的值

select last_date,last_sec,next_date,next_sec,interval,broken from user_jobs;

--停止正在啟動並執行job

exec dbms_job.broken(46,true);
commit;
 
select broken from user_jobs where job=46;

--啟動job

exec dbms_job.broken(46,false);
commit;

--
select next_date,next_sec from user_jobs;

修改下次執行時間:

exec dbms_job.next_date(5,sysdate+2/(24*60));
commit;

-- 修改執行的頻率

exec dbms_job.interval(5,sysdate+3/(24*60));
commit;

--移去job
job:dbms_job.remove(46);


--執行時間設定:

每天午夜12點 'trunc(sysdate+1)'
每天早上8點30分 'trunc(sysdate+1)+(1*60+30)/(24*60)'
每星期二中午12點 'next_day(trunc(sysdate),"tuesday")+ 12/24'
每個月第一天的晚上11點 '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)'

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.