您好,登錄后才能下訂單哦!
Oracle定時器
Oracle定時器:定時執行某個存儲過程。
通過pl/SQL的圖形化界面可以看到。定時器包括:調度和存儲過程連接口
存儲過程連接口
存儲過程連接口,主要告訴定時器要執行哪一個存儲過程。存儲過程連接口就是存儲過程執行的入口。從圖形化界面可以看出“Action”就是要執行的存儲過程。而“Arguments”就是調用該存儲過程所需要的參數類型及存儲過程所調用的必須參數。
存儲過程
存儲過程(Stored Procedure)是在大型數據庫系統中,一組為了完成特定功能的SQL 語句集,存儲在數據庫中經過第一次編譯后再次調用不需要再次編譯,用戶通過指定存儲過程的名字并給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是數據庫中的一個重要對象,任何一個設計良好的數據庫應用程序都應該用到存儲過程。
調度
調度最主要的功能就是告訴定時器神什么時候執行定時任務,執行的任務的頻率是多久。
/* 創建可執行程序 */
begin
DBMS_SCHEDULER.CREATE_PROGRAM(
program_name =>'peace_sj_his.PROG_DATASYNC',
program_action =>'peace_sj_his.P_DATASYNC',
program_type =>'STORED_PROCEDURE',
number_of_arguments =>3,
comments =>'數據同步程序',
enabled => false
);
end;
/
/* 設置可執行程序的輸入參數 */
begin
DBMS_SCHEDULER.define_program_argument(
program_name =>'peace_sj_his.PROG_DATASYNC',
argument_position =>1,
argument_type =>'VARCHAR2',
default_value =>''
);
DBMS_SCHEDULER.define_program_argument(
program_name =>'peace_sj_his.PROG_DATASYNC',
argument_position =>2,
argument_type =>'VARCHAR2',
default_value =>''
);
DBMS_SCHEDULER.define_program_argument(
program_name =>'peace_sj_his.PROG_DATASYNC',
argument_position =>3,
argument_type =>'VARCHAR2',
default_value =>''
);
END;
/
/* 創建調度表 */
begin
DBMS_SCHEDULER.create_schedule(
schedule_name =>'peace_sj_his.SCH_DATASYNC',
repeat_interval =>'FREQ=MINUTELY;INTERVAL=2',
start_date => sysdate,
comments =>'數據同步調度'
);
end;
/
/* 創建作業 */
begin
DBMS_SCHEDULER.create_job(
job_name =>'peace_sj_his.JOB_PPTN',
program_name =>'peace_sj_his.PROG_DATASYNC',
schedule_name =>'peace_sj_his.SCH_DATASYNC',
job_class =>'DEFAULT_JOB_CLASS',
comments =>'雨量數據同步作業',
auto_drop => false,
enabled => false
);
end;
/
/* 啟動可執行程序 */
exec DBMS_SCHEDULER.enable('PROG_DATASYNC');
/* 啟動作業 */
exec DBMS_SCHEDULER.enable('JOB_PPTN');
/* 設置不同的作業參數 */
begin
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(
job_name =>'peace_sj_his.JOB_PPTN',
argument_position =>1,
argument_value =>'ST_PPTN_R'
);
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(
job_name =>'peace_sj_his.JOB_PPTN',
argument_position =>2,
argument_value =>'TM'
);
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(
job_name =>'peace_sj_his.JOB_PPTN',
argument_position =>3,
argument_value =>'STCD'
);
end;
/
----Job管理-----------------------------------------------------------------------
/* 禁用Job */
exec dbms_scheduler.disable('JOBTEST');
/* 執行Job */
exec dbms_scheduler.run_job('JOBTEST');
/* 停止Job */
exec dbms_scheduler.stop_job('JOBTEST');
/* 刪除Job */
exec dbms_scheduler.drop_job('JOBTEST');
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。