What()過程。 1、 Broken()過程更新一個已提交的工作的狀態(tài),典型地是用來把一個已破工作標記為未破工作。 這個過程有三個參數(shù):job 、broken與next_date。 PROCEDURE Broken (job IN binary_integer, Broken IN boolean, next_date IN date :=SYSDATE) job參數(shù)是工作號,它在問題中唯一標識工作。 broken參數(shù)指示此工作是否將標記為破——TRUE說明此工作將標記為破,而FLASE說明此工作將標記為未破。 next_date參數(shù)指示在什么時候此工作將再次運行。此參數(shù)缺省值為當前日期和時間。 2、 Change()過程用來改變指定工作的設置。 這個過程有四個參數(shù):job、what 、next_date與interval。 PROCEDURE Change (job IN binary_integer, What IN varchar2, next_date IN date, interval IN varchar2) 此job參數(shù)是一個整數(shù)值,它唯一標識此工作。 What參數(shù)是由此工作運行的一塊PL/SQL代碼塊。 next_date參數(shù)指示何時此工作將被執(zhí)行。 interval參數(shù)指示一個工作重執(zhí)行的頻度。 3、 Interval()過程用來顯式地設置重執(zhí)行一個工作之間的時間間隔數(shù)。 這個過程有兩個參數(shù):job與interval。 PROCEDURE Interval (job IN binary_integer, Interval IN varchar2) job參數(shù)標識一個特定的工作。interval參數(shù)指示一個工作重執(zhí)行的頻度。 4、 ISubmit()過程用來用特定的工作號提交一個工作。 這個過程有五個參數(shù):job、what、next_date、interval與no_parse。 PROCEDURE ISubmit (job IN binary_ineger, What IN varchar2, next_date IN date, interval IN varchar2, no_parse IN booean:=FALSE) 這個過程與Submit()過程的唯一區(qū)別在于此job參數(shù)作為IN型參數(shù)傳遞且包括一個 由開發(fā)者提供的工作號。如果提供的工作號已被使用,將產(chǎn)生一個錯誤。 5、 Next_Date()過程用來顯式地設定一個工作的執(zhí)行時間。這個過程接收兩個參數(shù):job與next_date。 PROCEDURE Next_Date(job IN binary_ineger, next_date IN date) job標識一個已存在的工作。next_date參數(shù)指示了此工作應被執(zhí)行的日期與時間。 6、 Remove()過程來刪除一個已計劃運行的工作。這個過程接收一個參數(shù): PROCEDURE Remove(job IN binary_ineger); job參數(shù)唯一地標識一個工作。這個參數(shù)的值是由為此工作調(diào)用Submit()過程返回的job參數(shù)的值。 已正在運行的工作不能由調(diào)用過程序刪除。 7、 Run()過程用來立即執(zhí)行一個指定的工作。這個過程只接收一個參數(shù): PROCEDURE Run(job IN binary_ineger) job參數(shù)標識將被立即執(zhí)行的工作。 8、 使用Submit()過程,工作被正常地計劃好。 這個過程有五個參數(shù):job、what、next_date、interval與no_parse。 PROCEDURE Submit ( job OUT binary_ineger, What IN varchar2, next_date IN date, interval IN varchar2, no_parse IN booean:=FALSE) job參數(shù)是由Submit()過程返回的binary_ineger。這個值用來唯一標識一個工作。 what參數(shù)是將被執(zhí)行的PL/SQL代碼塊。 next_date參數(shù)指識何時將運行這個工作。 interval參數(shù)何時這個工作將被重執(zhí)行。 no_parse參數(shù)指示此工作在提交時或執(zhí)行時是否應進行語法分析——TRUE 指示此PL/SQL代碼在它第一次執(zhí)行時應進行語法分析, 而FALSE指示本PL/SQL代碼應立即進行語法分析。 9、 User_Export()過程返回一個命令,此命令用來安排一個存在的工作以便此工作能重新提交。 此程序有兩個參數(shù):job與my_call。 PROCEDURE User_Export(job IN binary_ineger, my_call IN OUT varchar2) job參數(shù)標識一個安排了的工作。my_call參數(shù)包含在它的當前狀態(tài)重新提交此工作所需要 的正文。 10、 What()過程應許在工作執(zhí)行時重新設置此正在運行的命令。這個過程接收兩個參數(shù):job與what。 PROCEDURE What (job IN binary_ineger, What IN OUT varchar2) job參數(shù)標識一個存在的工作。what參數(shù)指示將被執(zhí)行的新的PL/SQL代碼。
一個簡單例子:
創(chuàng)建測試表 SQL> create table a(a date); 表已創(chuàng)建。 創(chuàng)建一個自定義過程 SQL> create or replace procedure test as 2 begin 3 insert into a values(sysdate); 4 end; 5 / 過程已創(chuàng)建。 創(chuàng)建JOB SQL> variable job1 number; SQL> SQL> begin 2 dbms_job.submit(:job1,‘test;‘,sysdate,‘sysdate+1/1440‘); --每天1440分鐘,即一分鐘運行test過程一次 3 end; 4 / PL/SQL 過程已成功完成。 運行JOB SQL> begin 2 dbms_job.run(:job1); 3 end; 4 / PL/SQL 過程已成功完成。 SQL> select to_char(a,‘yyyy/mm/dd hh24:mi:ss‘) 時間 from a; 時間 ------------------- 2001/01/07 23:51:21 2001/01/07 23:52:22 2001/01/07 23:53:24 刪除JOB SQL> begin 2 dbms_job.remove(:job1); 3 end; 4 / PL/SQL 過程已成功完成。