请教一个关于不定时job调用的问题。在线等! 现在有一个不定时周期,可能是年,季,月,周,天,都可能,通过配置一个计算值来实现,当每个周期的第一天的0时开始触发执行一个存储过程!不知道如何实现!请教大家,最好给点代码! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不清楚.按你的描述设计下,看符合要求不.建立一个job,每天(或者半小时?)执行一次,对你job定义的表进行扫描.如果表中有新增数据(有个字段表征是否处理过,deal_sts,0,未处理,1已处理),则新增一个job,对于新增job的周期,按照表中定义(字段job_type,0天,1周,2月,3年) 楼主的意思是酱紫的莫~~首先一个配置表,这个表中楼主可以设定周期值为年,月,或季。然后建立一个job,当配置表中的周期值开始时(也就是第一天时)就执行这个job?例如:周期值设定为‘月’当每月的1号是,就要执行这个job!对吗?楼主???? 笨方法1、设置一个job,每天都执行2、在执行的过程里面,添加额外判断,如你自己写的,如果符合判断就执行,否则不执行 嗯,现在就是(字段job_type,0天,1周,2月,3年) 这只是个描述的东西,如何配置一个值,通过这个值知道年,季度,月,星期,日, 比如我在unix 下 00.00.00.00.00.*标示每年的第一天,00.00.00.00.*.*表示每个月的第一天,这个值怎么写,还有我需要判断系统当前时间是否为配置的周期的头一天。不知道如何判断! 这样子是不是可以呢?ORACLE JOB INTERVAL参数设置1:每分钟执行 Interval => TRUNC(sysdate,'mi') + 1/ (24*60) 或 Interval => sysdate+1/1440 2:每天定时执行 例如:每天的凌晨1点执行 Interval => TRUNC(sysdate) + 1 +1/ (24) 3:每周定时执行 例如:每周一凌晨1点执行 Interval => TRUNC(next_day(sysdate,'星期一'))+1/24 4:每月定时执行 例如:每月1日凌晨1点执行 Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24 5:每季度定时执行 例如每季度的第一天凌晨1点执行 Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24 6:每半年定时执行 例如:每年7月1日和1月1日凌晨1点 Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24 7:每年定时执行 例如:每年1月1日凌晨1点执行 Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24 --然后你这个样子:1.Create or replace Table...2.Create or replace procedure..3.variable job1 number; begin --select 开始时间 from Table into xxx; --判断取得的时间,然后根据上面的不同来设定间隔时间 if 每年 then dbms_job.submit(:job1,'insertSysdate;',sysdate,'sysdate'); end ... end; 急!求答案: 【求助】排序后分页的效率问题 请教各高手,怎样提高列新我速度,急!!!! 删除用户时提示无法删除已连接的用户 如何加密TNSNAMES.ORA oracle判断问题,答对马上就给分 在线 集合类型请教: 本机A怎么访问B机的数据库 oracle导数据库空表不能导 新人求SQL 语句 请教存储过程能否操作excel 求助:一个简单的SQL语句处理
建立一个job,每天(或者半小时?)执行一次,对你job定义的表进行扫描.如果表中有新增数据(有个字段表征是否处理过,deal_sts,0,未处理,1已处理),则新增一个job,对于新增job的周期,按照表中定义(字段job_type,0天,1周,2月,3年)
首先一个配置表,这个表中楼主可以设定周期值为年,月,或季。
然后建立一个job,当配置表中的周期值开始时(也就是第一天时)就执行这个job?
例如:周期值设定为‘月’
当每月的1号是,就要执行这个job!
对吗?楼主????
1、设置一个job,每天都执行
2、在执行的过程里面,添加额外判断,如你自己写的,如果符合判断就执行,否则不执行
嗯,现在就是(字段job_type,0天,1周,2月,3年) 这只是个描述的东西,如何配置一个值,通过这个值知道年,季度,月,星期,日, 比如我在unix 下 00.00.00.00.00.*标示每年的第一天,00.00.00.00.*.*表示每个月的第一天,这个值怎么写,还有我需要判断系统当前时间是否为配置的周期的头一天。不知道如何判断!
ORACLE JOB INTERVAL参数设置1:每分钟执行 Interval => TRUNC(sysdate,'mi') + 1/ (24*60) 或 Interval => sysdate+1/1440 2:每天定时执行 例如:每天的凌晨1点执行 Interval => TRUNC(sysdate) + 1 +1/ (24) 3:每周定时执行 例如:每周一凌晨1点执行 Interval => TRUNC(next_day(sysdate,'星期一'))+1/24 4:每月定时执行 例如:每月1日凌晨1点执行 Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24 5:每季度定时执行 例如每季度的第一天凌晨1点执行 Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24 6:每半年定时执行 例如:每年7月1日和1月1日凌晨1点 Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24 7:每年定时执行 例如:每年1月1日凌晨1点执行 Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24
--然后你这个样子:1.Create or replace Table...2.Create or replace procedure..3.variable job1 number;
begin
--select 开始时间 from Table into xxx;
--判断取得的时间,然后根据上面的不同来设定间隔时间
if 每年 then
dbms_job.submit(:job1,'insertSysdate;',sysdate,'sysdate');
end
...
end;