oracle 如何创建job,oracle创建job
一、基本語法
與MysqL的event事件類似,用來創(chuàng)建數(shù)據(jù)庫的定時任務。
DBMS_JOB.SUBMIT(
job OUT BINARY_INTEGER,what IN VARCHAR2,NEXT_DATE IN DATE DEFAULTSYSDATE,interval IN VARCHAR2 DEFAULT 'NULL',
no_parse IN BOOLEAN DEFAULT FALSE,instance IN BINARY_INTEGER DEFAULT ANY_INSTANCE,force IN BOOLEAN DEFAULT FALSE);
@H_403_40@job參數(shù)是由Submit()過程返回的整型
@H_403_40@what表示這個job執(zhí)行的內容,可以是存儲過程或者sql代碼塊
@H_403_40@next_date表示執(zhí)行這個job的開始時間
@H_403_40@interval表示重復執(zhí)行的時間間隔
@H_403_40@no_parse表示這個job什么時候進行語法分析,true表示第一次執(zhí)行時進行語法分析,false表示創(chuàng)建成功即進行語法分析
@H_403_40@instance、force用的很少。當force為true時,所有實例都能執(zhí)行該job;當force為false時,只有指定實例能執(zhí)行該job。
使用示例:
declare
tm_job number;
begin sys.dbms_job.submit(:tm_job,'prc_job_test;',sysdate,'sysdate+1/(24*60)');--每隔1分鐘執(zhí)行一次
end;
二、基本使用方法
1、oracle 10g默認允許的job隊列為10個,可以通過命令查看
show parameter job_queue_processes;
可以通過alert命令修改這個值
alter system set job_queue_processes=11 scope=both;
scope作用域介紹:
Oracle 里面有個叫做spfile的東西,就是動態(tài)參數(shù)文件,里面設置了Oracle 的各種參數(shù)。所謂的動態(tài),就是說你可以在不關閉數(shù)據(jù)庫的情況下,更改數(shù)據(jù)庫參數(shù),記錄在spfile里面。更改參數(shù)的時候,有3種scope選項。
@H_403_40@scope=spfile 僅僅更改spfile里面的記載,不更改內存,也就是不立即生效,而是等下次數(shù)據(jù)庫啟動生效。
@H_403_40@scope=memory 僅僅更改內存,不改spfile。也就是下次啟動就失效了。
@H_403_40@scope=both 內存和spfile都更改。默認為both。
2、對job進行修改
與創(chuàng)建類似,只不過第一個參數(shù)是傳入并非返回。
BEGIN DBMS_JOB.CHANGE(14144,null,'sysdate+3');
COMMIT;
END;
修改其他參數(shù)類似,例如修改INTERVAL
DBMS_JOB.INTERVAL (
job IN BINARY_INTEGER,interval IN VARCHAR2);
2、刪除job
DBMS_JOB.REMOVE (
job IN BINARY_INTEGER );
3、常用定時
TRUNC()函數(shù)常用來截取日期和數(shù)值(不進行四舍五入)。
select trunc(sysdate,'yyyy') from dual --2016-01-01 當年第一天
select trunc(sysdate,'dd') from dual --2016-09-05 當天
select trunc(sysdate,'hh') from dual --2016-09-05 17:00:00 精確到小時
select trunc(sysdate,'mi') from dual --2016-09-05 17:35:00 精確到分
select trunc(123.458,-1) from dual --120
select trunc(123.458,1) from dual --123.4
在job中的靈活時間設定
TRUNC(sysdate,'mi')+1/(24*60) --每分鐘執(zhí)行
TRUNC(sysdate+1) --每天凌晨0點執(zhí)行
TRUNC(sysdate+1)+1/24 --每天凌晨1點
TRUNC(SYSDATE+1)+(8*60+30)/(24*60) --每天早上8點30分執(zhí)行
TRUNC(next_day(sysdate,1))+2/24 --每周一凌晨2點執(zhí)行
TRUNC(LAST_DAY(SYSDATE)+1) --每月1日凌晨0點執(zhí)行
總結
以上是生活随笔為你收集整理的oracle 如何创建job,oracle创建job的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 装 linux后 win7消失了,win
- 下一篇: Chrome 下载文件出现已禁止