對於
dba來說,資料庫
job再熟悉不過了,因為經常要資料庫定時的自動執行一些指令碼,或做資料庫備份,或做資料的提煉,或做資料庫的效能優化,包括重建索引等等的工作。但是,
oracle
定時器job
時間的處理上,千變萬化,今天我把比較常用寫法彙總如下:
job的引數一一說明一下:
引數是由
submit()
過程返回的
binary_ineger
。這個值用來唯一標識乙個工作;
引數是將被執行的
pl/sql
**塊;
引數指識何時將執行這個工作。寫
job的時候可以不指定該值;
引數何時這個工作將被重執行。
interval
這個值是決定
job何時,被重新執行的關鍵。
例如:有儲存過程
p_dosomethings
,需要被不同的時間間隔執行。
declare
jobno number;
begin
dbms_job.submit(
jobno,
'p_dosomething;
',
--what
to_date(
'20090101020000',
'yyyy-mm-dd hh24:mi:ss'),
--next_date,可以不填
'interval時間字串'--
interval,關鍵設定
);
commit;
end;
建乙個job,定時執行不帶引數的函式:
declare
begin
v_begin := trunc(sysdate) + 12/24; --《當前日期的 12:00>
dbms_job.submit(job, --job編號
false,
false);
dbms_output.put_line('job(任務)編號:' || job);
commit;
end;
1、 每分鐘執行
trunc(sysdate,』mi
』) + 1
/ (24
*60)
2、 每天定時執行
2點執行
trunc(
sysdate) + 1+
2/ (24)
3、 每週定時執行
2點執行
trunc(next_day(
sysdate,
2))+2/
24 --星期一,一周的第二天
4、 每月定時執行
1日凌晨
2點執行
trunc(last_day(
sysdate))+1+
2/245、
每季度定時執行
2點執行
trunc(add_months(
sysdate,3),
'q') + 2/
246、
每半年定時執行7月
1日和1月
1日凌晨2點
add_months(trunc(
sysdate,
'yyyy'),6
)+2/24
7、 每年定時執行1月
1日凌晨
2點執行
add_months(trunc(
sysdate,
'yyyy'
),12)+2
/248、 sql語句
-------------查詢job-----------------
select job, what, next_date, next_sec, sysdate, failures, broken,interval
from user_jobs a;
-------------新增job-----------------
variable n number;
begin
dbms_job.submit(:n, 'my_jop;', sysdate,'sysdate+2/(24*60*60)');
commit;
end;
-------------修改job-----------------
begin
dbms_job.change(62 ,'my_jop;', sysdate,'sysdate+2/(24*60)' );
commit;
end;
begin
dbms_job.change(62 ,'my_jop;', to_date('2011-08-01 22:00:00', 'yyyy-mm-dd hh24:mi:ss'),'sysdate+1');
commit;
end;
-------------刪除job-----------------
begin
dbms_job.remove(41);
end;
-------------執行job-----------------------
begin
dbms_job.run(41);
end;
9、job案例:
建乙個job,定時執行帶引數的函式:
declare
begin
'declare v_sumsg varchar(200);v_sumwf varchar(200); v_sumzxcf varchar(200); begin sg_wf_zxcf_syn(v_sumsg,v_sumwf,v_sumzxcf);end;', --what值
false,
false);
dbms_output.put_line('job(任務)編號:' || job);
commit;
end;
oracle的job定時器
對於dba來說,資料庫job再熟悉不過了,因為經常要資料庫定時的自動執行一些指令碼,或做資料庫備份,或做資料的提煉,或做資料庫的效能優化,包括重建索引等等的工作。但是,oracle定時器job時間的處理上,千變萬化,今天我把比較常用寫法彙總如下 oracle定時任務有sys.dbms job包完成 ...
oracle定時器job用法小結
顧名思義,定時器就是定時來完成某些操作,oracle中的定時器job也是這種用法,在oracle中可以通過定義job來定期執行某個程式。oracle提供內建包dbms job來執行job的相關操作,比如定義 提交 更改 停止 移除等。1 建立job 使用submit 過程,這個過程中有5個引數 jo...
Oracle定時器(Job)各時間段寫法彙總
對於dba來說,資料庫job在熟悉不過了,因為經常要資料庫定時的自動執行一些指令碼,或做資料庫備份,或做資料的提煉,或做資料庫的效能優化,包括重建索引等等的工作。但是,oracle定時器job時間的處理上,千變萬化,今天我把比較常用的寫法彙總如下 在總結之前,先把job的引數一一說明一下 job引數...