N个时间区段存储在一张表中,包括了开始时间和结束时间.还有是属于第几条数据
Job---1:此Job执行存储过程Proc1,会根据当前时间是不是在要执行的时间区段内去
        启动运行Job2或是停止Job2
Job---2:此Job会启动必须在N个时间区段内要执行的存储过程Proc2如果增加删除修改时间区段数据,就执行一下Proc1Proc1的内容:
/** 
* 监控当前是不是在时间区段内 

*  如果在所有时间区段之前(-1),设置JOB2的Next_Date为第一数据的开始时间, Broken为False   
*  如果在某区段间但暂停执行存储过程(0),设置JOB2的Broken为True 
*  如果在某区段间,设置JOB2的Broken为False 
*  如果在二个时间区段之间(-2),设置JOB2的Next_Date为下一条数据的开始时间, Broken为False 
*  如果在所有时间区段之后(-3),设置JOB2的Broken为True 
*  如果没有时间区段数据(-4),设置JOB2的Broken为True  

*/ 
PROCEDURE Proc1 is 
vParams TYPEPARAMS;
vRoundNO Integer;
begin
  --取时间区段参数
  vParams := TYPEPARAMS();
  vParams.getParams();
  vRoundNO := vParams.checkIsPeriod();
  if (vRoundNO = -4) then 
          dbms_job.broken(1,true);
          dbms_job.broken(2,true);
  elsif (vRoundNO = -3) then 
          dbms_job.broken(1,true);
          dbms_job.broken(2,true);
  elsif (vRoundNO = -2) then 
          dbms_job.broken(1,False);
          dbms_job.Next_Date(2,vParams.timeList(vRoundNO).getBegTime());
          dbms_job.Broken(2,False);
  elsif (vRoundNO = -1) then 
          dbms_job.Next_Date(1,vParams.timeList(1).getBegTime());
          dbms_job.broken(1,False);
          dbms_job.Next_Date(2,vParams.timeList(1).getBegTime());
          dbms_job.Broken(2,False);
  elsif (vRoundNO = 0) then 
          dbms_job.Next_Date(1,sysdate);
          dbms_job.Broken(1,False);
          dbms_job.Broken(2,True);
  elsif (vRoundNO > 0) then 
          dbms_job.Next_Date(1,sysdate);
          dbms_job.Broken(1,False);
          dbms_job.Next_Date(2,sysdate);
          dbms_job.Broken(2,False);
  end if;
end Proc1;