oracle自定义job名字,job调度

Posted 突破自我

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
  

 

以上是关于oracle自定义job名字,job调度的主要内容,如果未能解决你的问题,请参考以下文章

oracle里的job和schedule有啥区别

oracle建调度作业(job)提示没有权限

oracle建调度作业(job)提示没有权限

oracle job不自动执行

oracle存储过程与job

如何在 oracle 作业调度程序中启用程序?