可以在存储过程里判断一下当前的时间
select sysdate into sys_date from dual;如果在8:00--18:00范围内就做,如果不在就null;然后提交一个作业,每一小时做一次。SQL> declare
  2  jobnum  integer;
  3  begin
  4  dbms_job.submit(
  5  job=>jobnum,
  6  what=>'p;',
  7  next_date=>sysdate,
  8  interval=>'sysdate+1/24'
  9  );
 10  commit;
 11  end;
 12  /