oracle自定義job名字,job調度


一、調試創建
 begin
 -- create_schedule
  dbms_scheduler.create_schedule(schedule_name => 's_change_send_dates_statue',   
  start_date => SYSDATE,
   repeat_interval => 'FREQ=MINUTELY; INTERVAL=1',   
   comments => '海關端收到企業數據改變狀態schedule');
  end;
  
  SCHEDULE_NAME :指定schedule名稱,注意名稱不能重復。 
START_DATE :指定該調度的開始時間,可為空,當為空時表示該調度暫不起用。 
REPEAT_INTERVAL :指定調度的執行頻率或周期。 
END_DATE :指定調度的結束時間,可為空,為空時就表示該調度將一直進行。 
COMMENTS :注釋信息。
  這其中,比較有技術含量的是REPEAT_INTERVAL參數,對於這個參數大家應該不會太陌生,因為前面介紹Jobs,也曾經提到過同名的參數,Schedules中的REPEAT_INTERVAL參數和Jobs中的REPEAT_INTERVAL參數功能完全相同,甚至參數格式也一模一樣。
  REPEAT_INTERVAL 參數的語法結構要復雜的多。其中最重要的是FREQ和INTERVAL兩個關鍵字。
FREQ 關鍵字用來指定間隔的時間周期,可選參數有:YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, and SECONDLY,分別表示年、月、周、日、時、分、秒等單位。 
INTERVAL 關鍵字用來指定間隔的頻繁,可指定的值的范圍從1-99。

  
  
  
begin
   -- create_program
   dbms_scheduler.create_program(program_name => 'p_change_send_dates_statue',
   program_type => 'STORED_PROCEDURE',
   program_action => 'sp_autosendcustom',
   number_of_arguments => 0,
   enabled => TRUE,
   comments => '海關端自動派單');
 end;
 
 •PROGRAM_NAME :指定一個program名稱; 
•PROGRAM_TYPE :Program的類型,如前文中所述,Program支持三種類型; 
•PROGRAM_ACTION :實際執行的操作,應與前面PROGRAM_TYPE參數關聯使用。比如說前面指定了PROGRAM_TYPE為"PLSQL_BLOCK",那么此處要執行的action就應當是一段標准的pl/sql代碼。如果前面指定PROGRAM_TYPE為"STORED_PROCEDURE",那么此處要執行的action就應當是ORACLE中定義好的存儲過程(含Java存儲過程),如果前面指定PROGRAM_TYPE為"EXECUTABLE",那么此處就應該指定外部命令的命令行信息(含路徑信息); 
•NUMBER_OF_ARGUMENTS :指定支持的參數個數,默認值為0即沒有參數。每個program最多能夠支持255個參數,注意如果PROGRAM_TYPE設置為PLSQL_BLOCK,那么本參數自動忽略; 
•ENABLED :指定是否將創建的program置為有效狀態,默認情況下為false。 
•COMMENTS :這個不用再說了吧,注釋信息。 

 
 
 begin
  -- create_job
   dbms_scheduler.create_job(job_name => 'j_change_send_dates_statue',
   program_name => 'p_change_send_dates_statue',
   schedule_name => 's_change_send_dates_statue',
   job_class => 'DEFAULT_JOB_CLASS',
   enabled => true,
   auto_drop => true,
   comments => '海關端收到企業數據改變狀態job');
  end;
調度job

 二、刪除調試的job

begin
sys.dbms_scheduler.drop_job(job_name =>'JOB_IMPORT_DATA_TO_SUM_ENTRY');
end;

 例:

 
         

begin
dbms_scheduler.create_schedule(schedule_name => 'SCHEDULE_DAILY_2',
repeat_interval => 'FREQ=DAILY; INTERVAL=1;BYHOUR=2',
comments => '每天2點執行調度');
end;



 begin
 -- create_schedule
  dbms_scheduler.create_schedule(schedule_name => 'schedule_paraCount',
   repeat_interval => 'Freq=Daily;Interval=1;ByHour=22',
   comments => '第天晚上10點刷新指定數據字典');
  end;
  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM