有一个表repository,有字段status,有时间字段validetime失效时间字段,当validetime日期过了的第二天凌晨00:00:00将status设置为失效状态'0'问下,这样的oracle定时任务如何做,有实例嚒?

解决方案 »

  1.   

    建立一个JOB 规定执行时间凌晨00:00:00  每天执行一次
    执行内容:Update repository Set status = '0'
      

  2.   

    参考这个:http://www.bitscn.com/oracle/optimize/200604/19366.html,里面有很详细的说明。
      

  3.   


    create table times(cl date);
    alter session set nls_date_format='dd-mm-yy hh24:mi:ss';declare
    begin
     dbms_scheduler.create_job(
          job_name=>'savedate',
          job_type=>'plsql_block',
          job_action=>'insert into times values(sysdate);',
          start_date=>sysdate,
          repert_interval=>'freq=minutely;interval=1',
          enabled=>true,
          auto_drop=>false
     );
    end给你一个create job实例。不过需要用户有create job的权限啊!
      

  4.   

    这个比较简单,先写个存储过程,然后写个JOB每天0点跑一下,不过当数据量大时,不能保证所有数据都是0点置成功
      

  5.   

    用数据库的作业去做:
    参考下:
    variable job1 number;
    begin
      sys.dbms_job.submit(job => :job1,
                          what => 'begin CDM_AutoDeleteMRData_PRC;end;',
                          next_date => to_date('15-04-2009 14:03:25', 'dd-mm-yyyy hh24:mi:ss'),
                          interval => 'to_date(to_char(sysdate, ''yyyy-mm-dd''), ''yyyy-mm-dd HH24:MI:SS'')+1+1/24');
      commit;
    end;
    /