亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle Scheduler中的repeat_interval怎么用

發布時間:2021-11-25 09:37:08 來源:億速云 閱讀:463 作者:小新 欄目:關系型數據庫

小編給大家分享一下Oracle Scheduler中的repeat_interval怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

repeat_interval從字面意思來說就是重復間隔。是指用戶定義間隔多長時間執行指定的任務。如果不指定該參數,則任務只執行一次。

repeat_interval語法如下:

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

下面分別介紹幾個常見的子名,更詳細的信息可以參考官方文檔:http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_sched.htm#BABFBCEF

1、frequency_clause

語法如下:

frequency_clause = "FREQ" "=" ( predefined_frequency | user_defined_frequency )
predefined_frequency = "YEARLY" | "MONTHLY" | "WEEKLY" | "DAILY" | 
   "HOURLY" | "MINUTELY" | "SECONDLY"
user_defined_frequency = named_schedule

指定重復的類型,這個參數必須指定。各個值的含意從字面就可以理解:YEARLY指定按年重復,MONTHLY指定按月重復,WEEKLY指定按周重復,DAILY指定按日重復,HOURLY指定按小時重復,MINUTELY指定按分鐘重復,SECONDLY指定按秒重復。

示例:使用MINUTELY作為重復類型

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;
/

創建一個名為tst1的job,做如下查詢:

Oracle Scheduler中的repeat_interval怎么用

從上面的查詢可以看出,上一次執行和下一次執行的間隔大約為60s。

2、interval_clause

語法如下:

interval_clause = "INTERVAL" "=" intervalnum
   intervalnum = 1 through 99

該參數指定重復的間隔,默認為1,取值范圍是1-99

示例:使用MINUTELY作為重復類型,指定間隔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;
/

再次查詢間隔時間

Oracle Scheduler中的repeat_interval怎么用從上圖中可以看出,間隔的時間約為2分鐘。

3、bymonth_clause

語法如下:

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"

該參數用于指定哪個月或哪幾個月執行任務。可以用數字指定月份,也可以用三個字母簡寫指定月份。

示例:指定每3、6、9、12月執行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;
/

Oracle Scheduler中的repeat_interval怎么用

從上面的查詢可以看出,下次job執行的時間是17年6月15日,因為現在是5月,所以job并沒有執行。

4、byweekno_clause

byweekno_clause = "BYWEEKNO" "=" weeknumber_list
   weeknumber_list = weeknumber ( "," weeknumber)*
   weeknumber = [minus] weekno
   weekno = 1 through 53

該參數用于指定在一年中的第幾周執行job,每年有52或53周,該參數只針對FREQ=YEARLY有效。

5、byyearday_clause

byyearday_clause = "BYYEARDAY" "=" yearday_list
   yearday_list = yearday ( "," yearday)*
   yearday = [minus] yeardaynum
   yeardaynum = 1 through 366

該參數指定一年中的第幾天執行job,有效值為1-366,也可以在數字前指定"-"代表該年的倒數第幾天如"-2"表示12月30日。

示例:指定每年的倒數第二天執行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;
/

Oracle Scheduler中的repeat_interval怎么用

從上圖可以看出,job的執行時間為17年12月30日,即17年的倒數第二天。

6、bydate_clause

語法如下:

bydate_clause = "BYDATE" "=" date_list
   date_list = date ( "," date)*
   date = [YYYY]MMDD [ offset | span ]

該參數用于指定哪一天執行job,格式為[YYYY]MMDD。可以用span參數指定連續的日期如bydate=0110,0111,0112,0113,0114與bydate=0110+span:5d等價。可以用offset參數對日期做調整,增加/減少幾天(d)或幾周(w)如bydate=0520-offset:5d,表示指定5月15日執行。

7、byday_clause

語法如下:

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"

指定一周中的周幾執行job,使用單詞的前三個字母指定。如果指定的freq=yearly,則daynum可以是1-53,指定一年的第幾周。如果freq=monthly,則daynum可以是1-5,指定一個月的第幾周。使用"-"表示倒數。

示例:每個月第3周的周五執行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;
/

Oracle Scheduler中的repeat_interval怎么用

從上圖可以看出一次執行時間為17年5月19日,為5月第三周的周五。

8、bymonthday_clause

語法如下:

bymonthday_clause = "BYMONTHDAY" "=" monthday_list
   monthday_list = monthday ( "," monthday)*
   monthday = [minus] monthdaynum
   monthdaynum = 1 through 31

指定每月的第幾天執行job,有效值為1-31,也可以使用"-"符號指定該月的倒數第幾天。

示例:指定每月的倒數第二天執行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;
/

Oracle Scheduler中的repeat_interval怎么用

如上圖所示,下次執行job的時間為5月30日,為5月的倒數第2天。

9、byhour_clause、byminute_clause、bysecond_clause

語法如下:

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

這些參數指定job執行時的具體的時、分、秒。

byhour指定幾點,byminute指定幾分,bysecond指定幾秒

示例:每天1:20:30執行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;
/

Oracle Scheduler中的repeat_interval怎么用

從上圖可以看出,一次執行的時間為指定的5月16日1:20:30。

以上是“Oracle Scheduler中的repeat_interval怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

无棣县| 永福县| 滨海县| 嘉鱼县| 永城市| 马鞍山市| 微山县| 新兴县| 德阳市| 潢川县| 杭锦后旗| 巴里| 土默特左旗| 平顶山市| 榆树市| 丰都县| 崇明县| 贺州市| 西宁市| 鄂伦春自治旗| 博罗县| 卓尼县| 五大连池市| 临夏市| 朝阳县| 中江县| 宜昌市| 青神县| 涪陵区| 郧西县| 黑山县| 商河县| 阳西县| 柳河县| 苗栗市| 泸州市| 密山市| 沙湾县| 吉水县| 山西省| 公安县|