以下是一个工作中实际用到的定时器,加了一些注解帖出来。简单四步,需要的可以直接copy使用。 --建立一个存储过程
Create or replace Procedure pro_nianjia
Is
Begin
update bo_ehr_archive set kxnjxss=((floor((sysdate-indate)/365)-1)*8)+40 where sysdate-indate>360 and to_char(indate,‘mmdd‘)=to_char(sysdate,‘mmdd‘);
Commit;
End; --定时每天执行已定义的存储过程
variable nianjia_timer number;
Begi...
Oracle定时器,一旦设置,服务器的重启不会影响Oracle定时器的执行(定时每天执行),beginsys.dbms_job.submit(job => :job,what => ‘check_err;‘,next_date => trunc(sysdate)+23/24,interval => ‘trunc(next_day(sysdate,‘‘星期五‘‘))+23/24‘);commit;
end;其中:job是系统自动产生编号,check_err是自己的一个过程或函数,next_date设置下次执行时间,
这里是今天晚上23:00,interval设置时间间隔,多久执行一次,这里...
DBA来说,数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作。但是,Oracle定时器Job时间的处理上,千变万化,今天我把比较常用写法汇总如下: 在总结之前,先把Job的参数一一说明一下: job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作; what参数是将被执行的PL/SQL代码块; next_date参数指识何时将运行...
--创建新增本地数据库的存储过程
create or replace
procedure pro_electric_record asbegininsert into electric_meter_record(id,basestation_id,name,meter_number,createtime)select sys_guid(),substr(s.sname,0,36),s.sname,s.svalue,sysdate from rtdbvs s where s.sname like ‘%POWER_DQDL%‘;commit;end;
--拼接另一张表中的值
select sys_guid(),substr(s.sname,0,36),s.sname,s.svalue,sysdate from rtdbvs s where s....
1、创建一个表,用来存储数据:create table job_table(run_time date);
2、创建存储过程:create or replace procedure job_procis begininsert into job_table(run_time) values (sysdate);end ;
3、创建定时器(每隔一分钟,向表里增加一条数据)declarejob numberbegindbms_job.submit(job,‘job_proc;‘,sysdate,‘TRUNC(sysdate,‘‘mi‘‘)+1/(24*60)‘) ;end ;
4、查看创建的定时器结构select job , next_date,next_sec...
执行declarei Integer;Begindbms_job.submit(i,‘p_test;‘,SYSDATE,‘SYSDATE+1/24‘); 每隔一个小时存储一次。END;variable i Integer;beginsys.dbms_job.submit(job => :i,what => ‘job_test;‘,next_date => sysdate,interval => ‘sysdate+1/64800‘);--每天64800秒,即每秒执行一次,但是实际oracle的jobs不能精确到秒,这里只是为了快速测试效果commit;end;修改执行:begin dbms_job.change(4,null,null,‘sysdate+1/24/...
=> ‘JOB_BASIC_STATISTIC‘,
job_type => ‘STORED_PROCEDURE‘,
job_action => ‘PROC_BASIC_STATISTIC‘, --存储过程名
start_date => to_date(to_char(sysdate,‘yyyy-mm-dd‘)||‘ 19:32:00‘, ‘yyyy-mm-dd hh24:mi:ss‘),
REPEAT_INTERVAL => ‘freq=minutely;interval=1‘,
enabled => true,
end_date => to_date(to_char(sysdate,‘yyyy-mm-dd‘)||‘ 20:34:00‘, ‘yyyy-mm-dd hh24:mi:ss‘),
comments => ‘执行定时统计...