溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

定時(shí)執(zhí)行存儲(chǔ)過程

發(fā)布時(shí)間:2020-06-08 05:40:40 來源:網(wǎng)絡(luò) 閱讀:909 作者:Mr_Dai 欄目:關(guān)系型數(shù)據(jù)庫(kù)

定時(shí)執(zhí)行存儲(chǔ)過程

基礎(chǔ)

  • Oracle定時(shí)器

Oracle定時(shí)器:定時(shí)執(zhí)行某個(gè)存儲(chǔ)過程。

通過pl/SQL的圖形化界面可以看到。定時(shí)器包括:調(diào)度和存儲(chǔ)過程連接口

定時(shí)執(zhí)行存儲(chǔ)過程

 

  • 存儲(chǔ)過程連接口

存儲(chǔ)過程連接口,主要告訴定時(shí)器要執(zhí)行哪一個(gè)存儲(chǔ)過程。存儲(chǔ)過程連接口就是存儲(chǔ)過程執(zhí)行的入口。從圖形化界面可以看出“Action”就是要執(zhí)行的存儲(chǔ)過程。而“Arguments”就是調(diào)用該存儲(chǔ)過程所需要的參數(shù)類型及存儲(chǔ)過程所調(diào)用的必須參數(shù)。

定時(shí)執(zhí)行存儲(chǔ)過程

  • 存儲(chǔ)過程

存儲(chǔ)過程(Stored Procedure)是在大型數(shù)據(jù)庫(kù)系統(tǒng)中,一組為了完成特定功能的SQL 語(yǔ)句集,存儲(chǔ)在數(shù)據(jù)庫(kù)中經(jīng)過第一次編譯后再次調(diào)用不需要再次編譯,用戶通過指定存儲(chǔ)過程的名字并給出參數(shù)(如果該存儲(chǔ)過程帶有參數(shù))來執(zhí)行它。存儲(chǔ)過程是數(shù)據(jù)庫(kù)中的一個(gè)重要對(duì)象,任何一個(gè)設(shè)計(jì)良好的數(shù)據(jù)庫(kù)應(yīng)用程序都應(yīng)該用到存儲(chǔ)過程。

  • 調(diào)度

調(diào)度最主要的功能就是告訴定時(shí)器神什么時(shí)候執(zhí)行定時(shí)任務(wù),執(zhí)行的任務(wù)的頻率是多久。

 

 定時(shí)執(zhí)行存儲(chǔ)過程

案件腳本的創(chuàng)建

/* 創(chuàng)建可執(zhí)行程序 */
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           
=>'數(shù)據(jù)同步程序',
        enabled            
=> false
    );
end;
/

/* 設(shè)置可執(zhí)行程序的輸入?yún)?shù) */
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;
/

/* 創(chuàng)建調(diào)度表 */
begin
    DBMS_SCHEDULER.create_schedule(
        schedule_name  
=>'peace_sj_his.SCH_DATASYNC',
        repeat_interval
=>'FREQ=MINUTELY;INTERVAL=2',
        start_date     
=> sysdate,
        comments       
=>'數(shù)據(jù)同步調(diào)度'
    );
end;
/

/* 創(chuàng)建作業(yè) */
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     
=>'雨量數(shù)據(jù)同步作業(yè)',
        auto_drop    
=> false,
        enabled      
=> false
    );
end;
/

/* 啟動(dòng)可執(zhí)行程序 */
exec DBMS_SCHEDULER.enable('PROG_DATASYNC');

/* 啟動(dòng)作業(yè) */
exec DBMS_SCHEDULER.enable('JOB_PPTN');

/* 設(shè)置不同的作業(yè)參數(shù) */
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');
/* 執(zhí)行Job */
exec dbms_scheduler.run_job('JOBTEST');
/* 停止Job */
exec dbms_scheduler.stop_job('JOBTEST');
/* 刪除Job */
exec dbms_scheduler.drop_job('JOBTEST');

 

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI