標籤:
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
oracle自訂job名字,job調度