小編給大家分享一下Oracle Scheduler中的repeat_interval怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、襄城ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的襄城網(wǎng)站制作公司
repeat_interval從字面意思來(lái)說(shuō)就是重復(fù)間隔。是指用戶定義間隔多長(zhǎng)時(shí)間執(zhí)行指定的任務(wù)。如果不指定該參數(shù),則任務(wù)只執(zhí)行一次。
repeat_interval語(yǔ)法如下:
repeat_interval = regular_schedule | combined_schedule regular_schedule = frequency_clause [";" interval_clause] [";" bymonth_clause] [";" byweekno_clause] [";" byyearday_clause] [";" bydate_clause] [";" bymonthday_clause] [";" byday_clause] [";" byhour_clause] [";" byminute_clause] [";" bysecond_clause] [";" bysetpos_clause] [";" include_clause] [";" exclude_clause] [";" intersect_clause][";" periods_clause] [";" byperiod_clause] combined_schedule = schedule_list
下面分別介紹幾個(gè)常見的子名,更詳細(xì)的信息可以參考官方文檔:http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_sched.htm#BABFBCEF
1、frequency_clause
語(yǔ)法如下:
frequency_clause = "FREQ" "=" ( predefined_frequency | user_defined_frequency ) predefined_frequency = "YEARLY" | "MONTHLY" | "WEEKLY" | "DAILY" | "HOURLY" | "MINUTELY" | "SECONDLY" user_defined_frequency = named_schedule
指定重復(fù)的類型,這個(gè)參數(shù)必須指定。各個(gè)值的含意從字面就可以理解:YEARLY指定按年重復(fù),MONTHLY指定按月重復(fù),WEEKLY指定按周重復(fù),DAILY指定按日重復(fù),HOURLY指定按小時(shí)重復(fù),MINUTELY指定按分鐘重復(fù),SECONDLY指定按秒重復(fù)。
示例:使用MINUTELY作為重復(fù)類型
BEGIN SYS.DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => 'tst1', JOB_TYPE => 'plsql_block', JOB_ACTION => 'insert into emp select * from scott.emp where empno=7396', REPEAT_INTERVAL => 'freq=minutely', ENABLED => TRUE); END; /
創(chuàng)建一個(gè)名為tst1的job,做如下查詢:
從上面的查詢可以看出,上一次執(zhí)行和下一次執(zhí)行的間隔大約為60s。
2、interval_clause
語(yǔ)法如下:
interval_clause = "INTERVAL" "=" intervalnum intervalnum = 1 through 99
該參數(shù)指定重復(fù)的間隔,默認(rèn)為1,取值范圍是1-99
示例:使用MINUTELY作為重復(fù)類型,指定間隔2分鐘
BEGIN SYS.DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => 'tst1', JOB_TYPE => 'plsql_block', JOB_ACTION => 'insert into emp select * from scott.emp where empno=7396', REPEAT_INTERVAL => 'freq=minutely;interval=2', ENABLED => TRUE); END; /
再次查詢間隔時(shí)間
從上圖中可以看出,間隔的時(shí)間約為2分鐘。
3、bymonth_clause
語(yǔ)法如下:
bymonth_clause = "BYMONTH" "=" monthlist monthlist = month ( "," month)* month = numeric_month | char_month numeric_month = 1 | 2 | 3 ... 12 char_month = "JAN" | "FEB" | "MAR" | "APR" | "MAY" | "JUN" | "JUL" | "AUG" | "SEP" | "OCT" | "NOV" | "DEC"
該參數(shù)用于指定哪個(gè)月或哪幾個(gè)月執(zhí)行任務(wù)。可以用數(shù)字指定月份,也可以用三個(gè)字母簡(jiǎn)寫指定月份。
示例:指定每3、6、9、12月執(zhí)行job
BEGIN SYS.DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => 'tst1', JOB_TYPE => 'plsql_block', JOB_ACTION => 'insert into emp select * from scott.emp where empno=7396', REPEAT_INTERVAL => 'freq=monthly;bymonth=3,6,9,12', ENABLED => TRUE); END; /
從上面的查詢可以看出,下次job執(zhí)行的時(shí)間是17年6月15日,因?yàn)楝F(xiàn)在是5月,所以job并沒有執(zhí)行。
4、byweekno_clause
byweekno_clause = "BYWEEKNO" "=" weeknumber_list weeknumber_list = weeknumber ( "," weeknumber)* weeknumber = [minus] weekno weekno = 1 through 53
該參數(shù)用于指定在一年中的第幾周執(zhí)行job,每年有52或53周,該參數(shù)只針對(duì)FREQ=YEARLY有效。
5、byyearday_clause
byyearday_clause = "BYYEARDAY" "=" yearday_list yearday_list = yearday ( "," yearday)* yearday = [minus] yeardaynum yeardaynum = 1 through 366
該參數(shù)指定一年中的第幾天執(zhí)行job,有效值為1-366,也可以在數(shù)字前指定"-"代表該年的倒數(shù)第幾天如"-2"表示12月30日。
示例:指定每年的倒數(shù)第二天執(zhí)行job
BEGIN SYS.DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => 'tst1', JOB_TYPE => 'plsql_block', JOB_ACTION => 'insert into emp select * from scott.emp where empno=7396', REPEAT_INTERVAL => 'freq=yearly;byyearday=-2', ENABLED => TRUE); END; /
從上圖可以看出,job的執(zhí)行時(shí)間為17年12月30日,即17年的倒數(shù)第二天。
6、bydate_clause
語(yǔ)法如下:
bydate_clause = "BYDATE" "=" date_list date_list = date ( "," date)* date = [YYYY]MMDD [ offset | span ]
該參數(shù)用于指定哪一天執(zhí)行job,格式為[YYYY]MMDD。可以用span參數(shù)指定連續(xù)的日期如bydate=0110,0111,0112,0113,0114與bydate=0110+span:5d等價(jià)。可以用offset參數(shù)對(duì)日期做調(diào)整,增加/減少幾天(d)或幾周(w)如bydate=0520-offset:5d,表示指定5月15日?qǐng)?zhí)行。
7、byday_clause
語(yǔ)法如下:
byday_clause = "BYDAY" "=" byday_list byday_list = byday ( "," byday)* byday = [weekdaynum] day weekdaynum = [minus] daynum daynum = 1 through 53 /* if frequency is yearly */ daynum = 1 through 5 /* if frequency is monthly */ day = "MON" | "TUE" | "WED" | "THU" | "FRI" | "SAT" | "SUN"
指定一周中的周幾執(zhí)行job,使用單詞的前三個(gè)字母指定。如果指定的freq=yearly,則daynum可以是1-53,指定一年的第幾周。如果freq=monthly,則daynum可以是1-5,指定一個(gè)月的第幾周。使用"-"表示倒數(shù)。
示例:每個(gè)月第3周的周五執(zhí)行job
BEGIN SYS.DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => 'tst1', JOB_TYPE => 'plsql_block', JOB_ACTION => 'insert into emp select * from scott.emp where empno=7396', REPEAT_INTERVAL => 'freq=monthly;byday=3 FRI', ENABLED => TRUE); END; /
從上圖可以看出一次執(zhí)行時(shí)間為17年5月19日,為5月第三周的周五。
8、bymonthday_clause
語(yǔ)法如下:
bymonthday_clause = "BYMONTHDAY" "=" monthday_list monthday_list = monthday ( "," monthday)* monthday = [minus] monthdaynum monthdaynum = 1 through 31
指定每月的第幾天執(zhí)行job,有效值為1-31,也可以使用"-"符號(hào)指定該月的倒數(shù)第幾天。
示例:指定每月的倒數(shù)第二天執(zhí)行job
BEGIN SYS.DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => 'tst1', JOB_TYPE => 'plsql_block', JOB_ACTION => 'insert into emp select * from scott.emp where empno=7396', REPEAT_INTERVAL => 'freq=hourly;bymonthday=-2', ENABLED => TRUE); END; /
如上圖所示,下次執(zhí)行job的時(shí)間為5月30日,為5月的倒數(shù)第2天。
9、byhour_clause、byminute_clause、bysecond_clause
語(yǔ)法如下:
byhour_clause = "BYHOUR" "=" hour_list hour_list = hour ( "," hour)* hour = 0 through 23 byminute_clause = "BYMINUTE" "=" minute_list minute_list = minute ( "," minute)* minute = 0 through 59 bysecond_clause = "BYSECOND" "=" second_list second_list = second ( "," second)* second = 0 through 59
這些參數(shù)指定job執(zhí)行時(shí)的具體的時(shí)、分、秒。
byhour指定幾點(diǎn),byminute指定幾分,bysecond指定幾秒
示例:每天1:20:30執(zhí)行job
BEGIN SYS.DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => 'tst1', JOB_TYPE => 'plsql_block', JOB_ACTION => 'insert into emp select * from scott.emp where empno=7396', REPEAT_INTERVAL => 'freq=daily;interval=1;byhour=1;byminute=20;bysecond=30', ENABLED => TRUE); END; /
從上圖可以看出,一次執(zhí)行的時(shí)間為指定的5月16日1:20:30。
以上是“Oracle Scheduler中的repeat_interval怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
本文題目:OracleScheduler中的repeat_interval怎么用
地址分享:http://chinadenli.net/article10/pigcdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、域名注冊(cè)、網(wǎng)站維護(hù)、微信小程序、電子商務(wù)、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)