特别提示:
成都创新互联是一家专业从事成都网站建设、成都网站制作、网页设计的品牌网络公司。如今是成都地区具影响力的网站设计公司,作为专业的成都网站建设公司,成都创新互联依托强大的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、营销型网站建设及网站设计开发服务!
oracle是执行完任务,才按照interval去计算下次执行时间!!!
为精确每个5分钟执行一个任务,必须自己计算时间。
如:trunc_minute(sysdate)+5/1440
create or replace function trunc_minute(v_date date) return date as
begin
return to_number(trunc(to_char(v_date, 'mi')/5))*5/(24*60) + trunc(v_date, 'hh24');
end;
你可以写个JOB定时执行指定的存储过程。
具体的你可以找一下Job的详细资料看一下
在你的存储过程里面定义一个变量:
v_HH24 CHAR(2) := '00';
begin后面给变量赋值:
v_HH24 := to_char(sysdate, 'HH24');
然后在你执行的代码外面加上:
IF v_HH24 = '02' THEN
你的代码;
end if;
然后使用下面的脚本创建job:
begin
sys.dbms_job.submit(job = :job,
what = '你的存储过程名字;',
next_date = to_date('01-06-2013 00:00:00', 'dd-mm-yyyy hh24:mi:ss'),
interval = 'SYSDATE+60/1440');
commit;
end;
/
1.引言
定制定时执行的任务有两种形式,系统级别和数据库级别,
从操作系统级别来讲,
windows系统我们可以使用任务计划来实现,
对于winXP系统,设置步骤如下,开始---设置---控制面板---任务计划,然后添加任务计划,按向导完成配置即可;
对于win7系统,设置步骤如下,点击开始,然后在 搜索程序和文件 框中输入 [任务计划],然后点击出来的任务计划程序,创建一个基本任务即可;
linux系统我们可以使用crontab命令来是实现,
关于crontab命令的使用可以见之前的博客
从数据库级别来讲,我们可以采用数据库的job来实现;
本节主要介绍通过oracle数据库的job来定制一个简单的定时执行任务。本节会采用oracle定制一个定时向一个表中插入语句。
这里聊一下我做这个oracle定时任务的缘由:
项目中要在固定的时间,把一个数据库中某些表的数据同步到另外一个数据库,显然这些工作我不能每次都自己去做,
那么,我要怎么来做呢?这个时候oracle的定时执行任务JOB无疑是我的最佳选择。我把同步的脚本放在一个存储过程中,
然后在固定的时间去执行这个存储过程就OK了。
注意:以下所有的操作都是在sytem用户下执行。采用PL/SQL做的客户端登陆。
打开PL/SQL Develper,连接上,在左侧树找到Jobs文件夹,打开,里面都是计划任务。