您好,登錄后才能下訂單哦!
目前oracle數(shù)據(jù)庫設(shè)置定時任務(wù)job調(diào)度一般有兩種方式,分別是dbms_scheduler創(chuàng)建job調(diào)度和dbms_job創(chuàng)建job調(diào)度。dbms_scheduler創(chuàng)建job調(diào)度是在10g以后才有的,甲骨文公司為了用來替換dbms_job而提供了更強大的功能與更靈活的機制/管理。下面介紹這兩種方式。
1. dbms_scheduler創(chuàng)建job調(diào)度。
--查詢 select * from dba_scheduler_jobs; --創(chuàng)建job begin dbms_scheduler.create_job ( job_name => 'job_myjob', --job名 job_type => 'STORED_PROCEDURE',--job類型 job_action => 'proc_myproc', --存儲過程名 start_date => sysdate,--開始執(zhí)行時間 repeat_interval => 'FREQ=DAILY;BYHOUR=9;BYMINUTE=30;BYSECOND=0', -- 下次執(zhí)行時間,按天,每天09:30:00執(zhí)行存儲過程proc_myproc comments => '測試JOB',--注釋 auto_drop=>false --job禁用后是否自動刪除 ); end; --運行 begin dbms_scheduler.run_job('job_myjob'); end; --啟用 begin dbms_scheduler.enable('job_myjob'); end; --禁用 begin dbms_scheduler.disable('job_myjob'); end; --刪除 begin dbms_scheduler.drop_job(job_name => 'job_myjob',force => TRUE); end;
2.dbms_job創(chuàng)建job調(diào)度。
--查詢 select * from dba_jobs; select * from all_jobs; select * from user_jobs; select * from dba_jobs_running; -- 創(chuàng)建job declare job_id number;--聲明一個out變量 begin -- 按天,每天09:30:00執(zhí)行這個存儲過程proc_myproc,并且輸出一個job_id變量,其值為該job的ID號 dbms_job.submit( job_id, --參數(shù)是輸出參數(shù),由submit()過程返回的binary_ineger,這個值用來唯一標(biāo)識一個工作。一般定義一個變量接收,可以去user_jobs視圖查詢job值。 'proc_myproc;', --參數(shù)是將被執(zhí)行的PL/SQL代碼塊,存儲過程名稱等。 sysdate, --參數(shù)指識何時將運行這個工作。 'TRUNC(SYSDATE+1)+(9*60+30)/(24*60)' --參數(shù)何時這個工作將被重執(zhí)行。 ); -- 把job的ID號打印出來 dbms_output.put_line(job_id); end; -- 運行job begin -- 這個7為job_id,請換為你自己對應(yīng)的job號 dbms_job.run(7); end; -- 啟用job begin dbms_job.broken(7,false); end; -- 禁用job begin dbms_job.broken(7,true); end; -- 刪除一個job begin dbms_job.remove(7); end;
總結(jié):推薦大家使用dbms_scheduler來創(chuàng)建job調(diào)度。job調(diào)度可以定時執(zhí)行PL/SQL代碼塊,存儲過程等。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。