ORACLE如何創(chuàng)建jobs-創(chuàng)新互聯(lián)

這篇文章主要介紹了ORACLE如何創(chuàng)建jobs,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

“專(zhuān)業(yè)、務(wù)實(shí)、高效、創(chuàng)新、把客戶(hù)的事當(dāng)成自己的事”是我們每一個(gè)人一直以來(lái)堅(jiān)持追求的企業(yè)文化。 成都創(chuàng)新互聯(lián)是您可以信賴(lài)的網(wǎng)站建設(shè)服務(wù)商、專(zhuān)業(yè)的互聯(lián)網(wǎng)服務(wù)提供商! 專(zhuān)注于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、設(shè)計(jì)服務(wù)業(yè)務(wù)。我們始終堅(jiān)持以客戶(hù)需求為導(dǎo)向,結(jié)合用戶(hù)體驗(yàn)與視覺(jué)傳達(dá),提供有針對(duì)性的項(xiàng)目解決方案,提供專(zhuān)業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場(chǎng),引領(lǐng)市場(chǎng)!

一、使用Jobs

  所謂JOBS,其實(shí)就是Scheduler管理的一個(gè)(或多個(gè))任務(wù)的執(zhí)行調(diào)度。

1.1  創(chuàng)建Jobs

  通過(guò)DBMS_SCHEDULER包來(lái)創(chuàng)建Jobs,是使用其CREATE_JOB過(guò)程。在創(chuàng)建Job時(shí),用戶(hù)可以指定要執(zhí)行的任務(wù),調(diào)度信息(啥時(shí)候執(zhí)行,執(zhí)行周期,終止日期等)以及其它一些任務(wù)相關(guān)的屬性。CREATE_JOB過(guò)程調(diào)用還是比較簡(jiǎn)單的,例如:

    SQL> BEGIN

      2  DBMS_SCHEDULER.CREATE_JOB (

      3     job_name           =>  'INSERT_TEST_TBL',

      4     job_type           =>  'STORED_PROCEDURE',

      5     job_action         =>  ' P_ INSERT INTOTEST ',

      6     start_date         =>  sysdate,

      7     repeat_interval    =>  'FREQ=DAILY;INTERVAL=1');

      8  END;

      9  /

  • PL/SQL  過(guò)程已成功完成。

  事實(shí)上,有權(quán)限的話(huà),用戶(hù)也可以創(chuàng)建其它SCHEMA下的JOB,只需要在指定JOB_NAME時(shí),按照schema.job_name的格式即可。注意喲,這種情況下創(chuàng)建的JOB,其CREATED與OWNER有可能并不相同的喲。

  當(dāng)使用CREATE_JOB過(guò)程創(chuàng)建JOB時(shí),可指定的參數(shù)值很多,只不過(guò)多數(shù)情況下用戶(hù)僅指定部分參數(shù)即可滿(mǎn)足需求。

  其中,上例中指定的參數(shù),分別代表的含義如下:

  • JOB_NAME :指定任務(wù)的名稱(chēng),必選值,注意要確保指定的名稱(chēng)唯一。

  • JOB_TYPE :任務(wù)執(zhí)行的操作類(lèi)型,必選值,有下列幾個(gè)可選值:

    • PLSQL_BLOCK :表示任務(wù)執(zhí)行的是一個(gè)PL/SQL匿名塊。

    • STORED_PROCEDURE :表示任務(wù)執(zhí)行的是ORACLE過(guò)程(含PL/SQL PROCEDURE和JAVA PROCEDURE),本例中正是指定這一參數(shù)值。

    • EXECUTABLE :表示任務(wù)執(zhí)行的是一個(gè)外部程序,比如說(shuō)操作系統(tǒng)命令。

    • CHAIN :表示任務(wù)執(zhí)行的是一個(gè)CHAIN。

  • JOB_ACTION :任務(wù)執(zhí)行的操作,必選值,應(yīng)與JOB_TYPE類(lèi)型中指定的參數(shù)相匹配。

  • 比如說(shuō)對(duì)于PL/SQL匿名塊,此處就可以放置PL/SQL塊的具體代表,類(lèi)似DECLARE .. BEGIN ..END這類(lèi);如果是ORACLE過(guò)程,那么此處應(yīng)該指定具體的過(guò)程名,注意由于任務(wù)執(zhí)行,即使過(guò)程中有OUT之類(lèi)參數(shù),實(shí)際執(zhí)行時(shí)也不會(huì)有輸出的。

  • START_DATE :指定任務(wù)初次執(zhí)行的時(shí)間,本參數(shù)可為空,當(dāng)為空時(shí),表示任務(wù)立刻執(zhí)行,效果等同于指定該參數(shù)值為SYSDATE。

  • REPEAT_INTERVAL :指定任務(wù)執(zhí)行的頻率,比如多長(zhǎng)時(shí)間會(huì)被觸發(fā)再次執(zhí)行。本參數(shù)也可以為空,如果為空的話(huà),就表示當(dāng)前設(shè)定的任務(wù)只執(zhí)行一次。REPEAT_INTERVAL參數(shù)需要好好說(shuō)說(shuō),因?yàn)檫@一參數(shù)與標(biāo)準(zhǔn)JOB中的INTERVAL參數(shù)有很大區(qū)別,相比之下,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。

    例如:REPEAT_INTERVAL=>'FREQ=DAILY;INTERVAL=1';表示每天執(zhí)行一次,如果將INTERVAL改為7就表示每7天執(zhí)行一次,效果等同于FREQ=WEEKLY;INTERVAL=1。

    一般來(lái)說(shuō),使用DBMS_SCHEDULER.CREATE_JOB創(chuàng)建一個(gè)JOB,至少需要指定上述參數(shù)中的前3項(xiàng)。除此之外,還可以在CREATE_JOB時(shí),指定下列參數(shù):

  • NUMBER_OF_ARGUMENTS :指定該JOB執(zhí)行時(shí)需要附帶的參數(shù)的數(shù)量,默認(rèn)值為0,注意當(dāng)JOB_TYPE列值為PLSQL_BLOCK或CHAIN時(shí),本參數(shù)必須設(shè)置為0,因?yàn)樯鲜鰞煞N情況下不支持附帶參數(shù)。

  • END_DATE :指定任務(wù)的過(guò)期時(shí)間,默認(rèn)值為NULL。任務(wù)過(guò)期后,任務(wù)的STATE將自動(dòng)被修改為COMPLETED,ENABLED被置為FALSE。如果該參數(shù)設(shè)置為空的話(huà),表示該任務(wù)永不過(guò)期,將一直按照REPEAT_INTERVAL參數(shù)設(shè)置的周期重復(fù)執(zhí)行,直到達(dá)到設(shè)置的MAX_RUNS或MAX_FAILURES值。

  • JOB_CLASS :指定任務(wù)關(guān)聯(lián)的CLASS,默認(rèn)值為DEFAULT_JOB_CLASS。關(guān)于JOB CLASS的信息就關(guān)注本系列的后續(xù)文章。

  • ENABLED :指定任務(wù)是否啟用,默認(rèn)值為FALSE。FALSE狀態(tài)表示該任務(wù)并不會(huì)被執(zhí)行,除非被用戶(hù)手動(dòng)調(diào)用,或者用戶(hù)將該任務(wù)的狀態(tài)修改為T(mén)RUE。

  • AUTO_DROP :當(dāng)該標(biāo)志被置為T(mén)RUE時(shí),ORACLE會(huì)在滿(mǎn)足條件時(shí)自動(dòng)刪除創(chuàng)建的任務(wù)

    • 任務(wù)已過(guò)期;

    • 任務(wù)大運(yùn)行次數(shù)已達(dá)MAX_RUNS的設(shè)置值;

    • 任務(wù)未指定REPEAT_INTERVAL參數(shù),僅運(yùn)行一次;

    該參數(shù)的默認(rèn)值即為T(mén)RUE。用戶(hù)在執(zhí)行CREATE_JOB過(guò)程時(shí)可以手動(dòng)將該標(biāo)志指定為FALSE,當(dāng)參數(shù)值設(shè)置為FALSE時(shí),即使?jié)M足上述提到的條件任務(wù)也不會(huì)被自動(dòng)刪除,這種情況下,唯一能夠?qū)е氯蝿?wù)被刪除的情況,就是用戶(hù)主動(dòng)調(diào)用DROP_JOB過(guò)程。

  • COMMENTS :設(shè)置任務(wù)的注釋信息,默認(rèn)值為NULL。

  上面的例子創(chuàng)建了一個(gè)新的JOB,不過(guò)這個(gè)JOB與普通JOB不同,此時(shí)查詢(xún)USER_JOBS視圖是查不到剛剛創(chuàng)建的JOB的信息,因?yàn)檫@個(gè)JOB是SCHEDULER管理的JOB。要查詢(xún)SCHEDULER管理的JOS,應(yīng)該通過(guò)USER_SCHEDULER_JOBS(當(dāng)然ALL_SCHEDULER_JOBS和DBA_SCHEDULER_JOBS也可以),例如:

    SQL> select job_name,job_type,job_action,to_char(start_date,'yyyy-mm-dd hh34:mi:ss'),repeat_interval,enabled,state from user_scheduler_jobs;

    JOB_NAME             JOB_TYPE         JOB_ACTION                TO_CHAR(START_DATE, REPEAT_INTERVAL                ENABL STATE

    -------------------- ---------------- ------------------------- ------------------- ------------------------------ ----- ---------------

  • INSERT_TEST_TBL      STORED_PROCEDURE P_INSERTINTOTEST          2009-07-27 13:46:50 FREQ=DAILY;INTERVAL=1          FALSE DISABLED

  不過(guò),細(xì)心的盆友可能會(huì)發(fā)現(xiàn),JOB雖然成功創(chuàng)建了,但卻并未執(zhí)行,這是怎么回事?其實(shí)原因很簡(jiǎn)單,還記的前面介紹CREATE_JOB過(guò)程時(shí)提到的ENABLED參數(shù)嗎,當(dāng)不顯式指定時(shí),該參數(shù)的默認(rèn)值為false,JOB自然不會(huì)運(yùn)行了。如果遇到這類(lèi)情形,如何修改呢?

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“ORACLE如何創(chuàng)建jobs”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

網(wǎng)頁(yè)標(biāo)題:ORACLE如何創(chuàng)建jobs-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://bm7419.com/article32/ighpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站ChatGPT、小程序開(kāi)發(fā)、電子商務(wù)、品牌網(wǎng)站建設(shè)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司