91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

ORACLE如何創建jobs

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

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


一、使用Jobs

  所謂JOBS,其實就是Scheduler管理的一個(或多個)任務的執行調度。

1.1  創建Jobs

  通過DBMS_SCHEDULER包來創建Jobs,是使用其CREATE_JOB過程。在創建Job時,用戶可以指定要執行的任務,調度信息(啥時候執行,執行周期,終止日期等)以及其它一些任務相關的屬性。CREATE_JOB過程調用還是比較簡單的,例如:

    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  過程已成功完成。

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

  當使用CREATE_JOB過程創建JOB時,可指定的參數值很多,只不過多數情況下用戶僅指定部分參數即可滿足需求。

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

  • JOB_NAME :指定任務的名稱,必選值,注意要確保指定的名稱唯一。

  • JOB_TYPE :任務執行的操作類型,必選值,有下列幾個可選值:

    • PLSQL_BLOCK :表示任務執行的是一個PL/SQL匿名塊。

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

    • EXECUTABLE :表示任務執行的是一個外部程序,比如說操作系統命令。

    • CHAIN :表示任務執行的是一個CHAIN。

  • JOB_ACTION :任務執行的操作,必選值,應與JOB_TYPE類型中指定的參數相匹配。

  • 比如說對于PL/SQL匿名塊,此處就可以放置PL/SQL塊的具體代表,類似DECLARE .. BEGIN ..END這類;如果是ORACLE過程,那么此處應該指定具體的過程名,注意由于任務執行,即使過程中有OUT之類參數,實際執行時也不會有輸出的。

  • START_DATE :指定任務初次執行的時間,本參數可為空,當為空時,表示任務立刻執行,效果等同于指定該參數值為SYSDATE。

  • REPEAT_INTERVAL :指定任務執行的頻率,比如多長時間會被觸發再次執行。本參數也可以為空,如果為空的話,就表示當前設定的任務只執行一次。REPEAT_INTERVAL參數需要好好說說,因為這一參數與標準JOB中的INTERVAL參數有很大區別,相比之下,REPEAT_INTERVAL參數的語法結構要復雜的多。其中最重要的是FREQ和INTERVAL兩個關鍵字。

    • FREQ 關鍵字用來指定間隔的時間周期,可選參數有:YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, and SECONDLY,分別表示年、月、周、日、時、分、秒等單位。

    • INTERVAL 關鍵字用來指定間隔的頻繁,可指定的值的范圍從1-99。

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

    一般來說,使用DBMS_SCHEDULER.CREATE_JOB創建一個JOB,至少需要指定上述參數中的前3項。除此之外,還可以在CREATE_JOB時,指定下列參數:

  • NUMBER_OF_ARGUMENTS :指定該JOB執行時需要附帶的參數的數量,默認值為0,注意當JOB_TYPE列值為PLSQL_BLOCK或CHAIN時,本參數必須設置為0,因為上述兩種情況下不支持附帶參數。

  • END_DATE :指定任務的過期時間,默認值為NULL。任務過期后,任務的STATE將自動被修改為COMPLETED,ENABLED被置為FALSE。如果該參數設置為空的話,表示該任務永不過期,將一直按照REPEAT_INTERVAL參數設置的周期重復執行,直到達到設置的MAX_RUNS或MAX_FAILURES值。

  • JOB_CLASS :指定任務關聯的CLASS,默認值為DEFAULT_JOB_CLASS。關于JOB CLASS的信息就關注本系列的后續文章。

  • ENABLED :指定任務是否啟用,默認值為FALSE。FALSE狀態表示該任務并不會被執行,除非被用戶手動調用,或者用戶將該任務的狀態修改為TRUE。

  • AUTO_DROP :當該標志被置為TRUE時,ORACLE會在滿足條件時自動刪除創建的任務

    • 任務已過期;

    • 任務最大運行次數已達MAX_RUNS的設置值;

    • 任務未指定REPEAT_INTERVAL參數,僅運行一次;

    該參數的默認值即為TRUE。用戶在執行CREATE_JOB過程時可以手動將該標志指定為FALSE,當參數值設置為FALSE時,即使滿足上述提到的條件任務也不會被自動刪除,這種情況下,唯一能夠導致任務被刪除的情況,就是用戶主動調用DROP_JOB過程。

  • COMMENTS :設置任務的注釋信息,默認值為NULL。

  上面的例子創建了一個新的JOB,不過這個JOB與普通JOB不同,此時查詢USER_JOBS視圖是查不到剛剛創建的JOB的信息,因為這個JOB是SCHEDULER管理的JOB。要查詢SCHEDULER管理的JOS,應該通過USER_SCHEDULER_JOBS(當然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

  不過,細心的盆友可能會發現,JOB雖然成功創建了,但卻并未執行,這是怎么回事?其實原因很簡單,還記的前面介紹CREATE_JOB過程時提到的ENABLED參數嗎,當不顯式指定時,該參數的默認值為false,JOB自然不會運行了。如果遇到這類情形,如何修改呢?

感謝你能夠認真閱讀完這篇文章,希望小編分享的“ORACLE如何創建jobs”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

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

AI

舞阳县| 永登县| 三明市| 江口县| 鸡泽县| 临颍县| 板桥市| 金堂县| 潜江市| 江陵县| 岗巴县| 泗洪县| 柳江县| 嘉定区| 招远市| 西林县| 安乡县| 合作市| 屯门区| 沙雅县| 鄂托克旗| 香河县| 忻城县| 秦安县| 元氏县| 彰武县| 泊头市| 宁晋县| 巴青县| 平果县| 临朐县| 连云港市| 屏东市| 巴东县| 连山| 大方县| 神木县| 南阳市| 文昌市| 万源市| 旬阳县|