某个时间段内间隔指定时间执行任务:如:每天9:00 到 17:30 每5分钟 执行 _ABC_ 的存储过程。oracle 10G 以上版本。真心求教,不胜感激!
解决方案 »
- oracle配置透明网关tg4msql连接SQLServer遇到的问题
- 关于job的建立
- oracle 删除数据后,USERS01.DBF文件大小没有减小,为什么啊?
- 建了一个表,因为数据比较大,所以建立了多个索引,怎样统计这些索引占了多大空间?
- 大家好,我想问一个两个oracle数据库通讯的问题
- 菜鸟紧急求助!pl/sql下怎么执行包里面的过程?
- 请教高手,帮我看看这个,为什么编译通过不了
- ORACLE的pl/sql中获得错误信息?????
- 可以向视图插入数据吗?
- oracle9i的ODBC问题,在线等待!
- derby数据库不能更新数据ERROR: java.sql.BatchUpdateException: 以只读方式打开容器。
- 为什么这个触发器编译不通过?
--试试,下面这个是执行上面所说功能的存储过程,调用即可
Create Or Replace Procedure PROC_JOB_RAIN_JM
Is
li_jobno Number;
Begin
if to_char(sysdate,'hh24:mi:ss')>='09:00:00' and to_char(sysdate,'hh24:mi:ss')<='17:30:00' then
DBMS_JOB.SUBMIT(li_jobno,'_ABC_;',
SYSDATE,'TRUNC(SYSDATE + 5)');
end if;
End;
li_jobno binary_integer;--用于存放job的编号
Begin
select job
into li_jobno
from dba_jobs
where what = 'PROC_JOB_RAIN_JM;_ABC_;';
--如果时间大于17:30 则job在下一天的9点执行
if to_char(sysdate, 'hh24:mi:ss') > '17:30:00' then
DBMS_JOB.broken(li_jobno, false, trunc(SYSDATE + 1) + 9 / 24);
--如果时间在9点之前则job在这天的9点执行
elsif to_char(sysdate, 'hh24:mi:ss') < '09:00:00' then
DBMS_JOB.broken(li_jobno, false, trunc(SYSDATE) + 9 / 24);
end if;
commit;
End PROC_JOB_RAIN_JM;
/
variable job1 number;
begin
--每天晚上8点执行
dbms_job.submit(job1,'PROC_JOB_RAIN_JM;_ABC_;',trunc(sysdate)+9/24,'sysdate+5/24/60');
commit;
end;
/