共計(jì) 2395 個(gè)字符,預(yù)計(jì)需要花費(fèi) 6 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下 ORACLE Scheduler 中如何創(chuàng)建和管理 Schedule,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
10g
中新推出的 SCHEDULER 可能確實(shí)會(huì)讓很多初接觸的朋友感覺暈頭暈?zāi)X,相比之前的 jobs,SCHEDULER 中新增的概念太多。比如說(shuō) jobs,仍然可以理解成之前版本中的 jobs,不過(guò)功能更加強(qiáng)大 (注意 10g 中也仍然可以使用普通 jobs,這是廢話,相信看本篇文章的朋友目前應(yīng)該還是這樣在用),比如說(shuō) program,指的是運(yùn)行的程序 (把要做什么單提出來(lái)了),比如說(shuō) schedule,我將其翻譯為調(diào)度 (job 我翻譯為任務(wù)),定義執(zhí)行的頻率或者說(shuō)周期。
3.1 創(chuàng)建和管理 Schedules
Schedule,中文直譯的話應(yīng)該理解成調(diào)度,從名字來(lái)看,它是一個(gè)邏輯實(shí)體 (邏輯,還實(shí)體,好矛盾),就是說(shuō)當(dāng)創(chuàng)建了 schedule 之后,數(shù)據(jù)庫(kù)中就肯定存在這一對(duì)象,只不過(guò)這一對(duì)象是用來(lái)描述 job 的執(zhí)行周期。
創(chuàng)建 schedule 可以通過(guò) DBMS_SCHEDULER.CREATE_SCHEDULE 過(guò)程,該過(guò)程支持的參數(shù)如下:
SQL desc dbms_scheduler.create_schedule;
Parameter Type Mode Default?
————— ———————— —- ——–
SCHEDULE_NAME VARCHAR2 IN
START_DATE TIMESTAMP WITH TIME ZONE IN Y
REPEAT_INTERVAL VARCHAR2 IN
END_DATE TIMESTAMP WITH TIME ZONE IN Y
COMMENTS VARCHAR2 IN Y
各參數(shù)分別代表含意如下:
SCHEDULE_NAME:指定 schedule 名稱,注意名稱不能重復(fù)。
START_DATE:指定該調(diào)度的開始時(shí)間,可為空,當(dāng)為空時(shí)表示該調(diào)度暫不起用。
REPEAT_INTERVAL:指定調(diào)度的執(zhí)行頻率或周期。
END_DATE:指定調(diào)度的結(jié)束時(shí)間,可為空,為空時(shí)就表示該調(diào)度將一直進(jìn)行。
COMMENTS:注釋信息。
這其中,比較有技術(shù)含量的是 REPEAT_INTERVAL 參數(shù),對(duì)于這個(gè)參數(shù)大家應(yīng)該不會(huì)太陌生,因?yàn)榍懊娼榻B Jobs,也曾經(jīng)提到過(guò)同名的參數(shù),Schedules 中的 REPEAT_INTERVAL 參數(shù)和 Jobs 中的 REPEAT_INTERVAL 參數(shù)功能完全相同,甚至參數(shù)格式也一模一樣。
REPEAT_INTERVAL 參數(shù)的語(yǔ)法結(jié)構(gòu)要復(fù)雜的多。其中最重要的是 FREQ 和 INTERVAL 兩個(gè)關(guān)鍵字。
FREQ 關(guān)鍵字用來(lái)指定間隔的時(shí)間周期,可選參數(shù)有:YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, and SECONDLY,分別表示年、月、周、日、時(shí)、分、秒等單位。
INTERVAL 關(guān)鍵字用來(lái)指定間隔的頻繁,可指定的值的范圍從 1 -99。
比如說(shuō),當(dāng)指定 REPEAT_INTERVAL= FREQ=DAILY;INTERVAL=1 就表示每天執(zhí)行一次,如果將 INTERVAL 改為 7 就表示每 7 天執(zhí)行一次,效果等同于 FREQ=WEEKLY;INTERVAL=1。
下面,創(chuàng)建一個(gè) schedule,指定調(diào)度為每周一次的頻率,執(zhí)行腳本如下:
SQL begin
2 DBMS_SCHEDULER.CREATE_SCHEDULE (
3 schedule_name = my_first_schedule ,
4 start_date = SYSDATE,
5 repeat_interval = FREQ=WEEKLY; INTERVAL=1 ,
6 comments = Every 1 weeks
7 END;
8 /
PL/SQL procedure successfully completed.
查詢當(dāng)前已經(jīng)創(chuàng)建的 schedules,可以通過(guò) *_SCHEDULER_SCHEDULES 視圖 (含 DBA_,ALL_,USER_),例如,查看當(dāng)前用戶擁有的 schedules,執(zhí)行語(yǔ)句如下:
SQL select schedule_name,repeat_interval from user_scheduler_schedules;
SCHEDULE_NAME REPEAT_INTERVAL
—————————— ——————————
MY_FIRST_SCHEDULE FREQ=WEEKLY; INTERVAL=1
如果要修改 schedule 屬性的話,也是使用 DBMS_SCHEDULER.SET_ATTRIBUTE 過(guò)程,該過(guò)程的調(diào)用方式前面已經(jīng)多次演示過(guò),這里就不再重復(fù)舉例了,僅說(shuō)明一點(diǎn),對(duì)于 schedule 來(lái)說(shuō),能夠修改的屬性包括:REPEAT_INTERVAL、COMMENTS、END_DATE、START_DATE 以及 EVENT_SPEC。
至于刪除 schedule,再簡(jiǎn)單不過(guò),執(zhí)行 DBMS_SCHEDULER.DROP_SCHEDULE 過(guò)程即可,例如:
SQL EXEC DBMS_SCHEDULER.DROP_SCHEDULE(MY_FIRST_SCHEDULE
PL/SQL procedure successfully completed.
以上是“ORACLE Scheduler 中如何創(chuàng)建和管理 Schedule”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!