请教oracle job的问题

[复制链接]
查看11 | 回复9 | 2012-1-4 11:58:44 | 显示全部楼层 |阅读模式
本帖最后由 oraclelsw 于 2013-12-24 10:29 编辑
各位大神好,现在又个任务就是设置一个job 让他每天早上9点到晚上6点每10分钟跑一次,请问这个自动job怎么设置?
我下面这样写能实现么10分钟跑一次但是跑一天就停了,不能第二天早点9点自动起来,我第二天手动执行时报end_date 无效的错误,请大家帮忙看下,谢谢!
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name =>'P_job',
job_type =>'STORED_PROCEDURE',
job_action =>'P_tset_',
start_date=> TRUNC(sysdate)+9/(24),
repeat_interval =>'FREQ=minutely ; INTERVAL=10' );
end_date
=> TRUNC(sysdate)+18/24;
END;
/

请教一下应该怎么写?不甚感激!
还有一个问题就是程序10分钟之内没有跑完,下个十分钟是继续跑完还是重新跑????因为不同时间段数据量不一样,怕出现这种问题!

回复

使用道具 举报

千问 | 2012-1-4 11:58:44 | 显示全部楼层
你的end_date有问题吧??就当天的。。。。?
回复

使用道具 举报

千问 | 2012-1-4 11:58:44 | 显示全部楼层
ref :
http://www.itpub.net/thread-1814309-1-1.html
还有一个问题就是,要每天跑就不能指定end_date,设为空
回复

使用道具 举报

千问 | 2012-1-4 11:58:44 | 显示全部楼层
Naldonado 发表于 2013-12-23 19:38
你的end_date有问题吧??就当天的。。。。?

不是有sysdate吗,不是表示每天?只表示当天,那怎么实现每天晚上6点自动停啊?
回复

使用道具 举报

千问 | 2012-1-4 11:58:44 | 显示全部楼层
oracle_cj 发表于 2013-12-23 22:23
ref :
http://www.itpub.net/thread-1814309-1-1.html

直接在一个create_job里面怎么设置?
回复

使用道具 举报

千问 | 2012-1-4 11:58:44 | 显示全部楼层
你看了我给 的连接了么,请问
回复

使用道具 举报

千问 | 2012-1-4 11:58:44 | 显示全部楼层
只有跑完了才会开始计时,10分钟后开始下一次job
回复

使用道具 举报

千问 | 2012-1-4 11:58:44 | 显示全部楼层
interval 这么填
case when sysdate-trunc(sysdate)(18*60)/1440 then trunc(sysdate+1)+(9*60)/1440
else SYSDATE+10/1440
end

回复

使用道具 举报

千问 | 2012-1-4 11:58:44 | 显示全部楼层
学习了
回复

使用道具 举报

千问 | 2012-1-4 11:58:44 | 显示全部楼层
8楼的做法不错。
也可以这么做:写个正常的每10分钟跑一次的job,在你的过程P_tset_中添加判断当前时间的sql,示意sql如下:
if 当前时间 不在9:00--18:00之间 then
return;
end if;
过程中如果碰上return;就不往下执行了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行