oralce数据库定时任务示例

 在web系统开发中,某些系统需要定时执行一些数据库操作。如定期删除数据,定期调用某个存储过程进行报表的统计信息处理等等操作。为了解决这个需求,可以参照如下的几个步骤晚上数据库的定时任务的操作。
     1、创建需要定时执行的存储过程代码。
     2、创建定时job任务。
     可以参照如下例子:
     CREATE OR REPLACE PROCEDURE drop_create_table
IS
str_sql varchar2(500);
v_count number;
BEGIN  
    select count(*) into v_count from user_tables where table_name='TABLENAME';
    if v_count<>0 then
        str_sql := 'drop table TABLENAME';
        execute immediate str_sql;
    end if;
        str_sql := 'DYNAMIC SQL';
execute immediate str_sql;    
EXCEPTION
  when others then
            null;
END drop_create_table;

--定时删除  每天凌晨执行一次的计划
DECLARE
  X NUMBER;
BEGIN
  SYS.DBMS_JOB.SUBMIT
  ( job       => X
   ,what      => 'drop_create_table;'
   ,next_date => to_date('26/09/2008 00:00:00','dd/mm/yyyy hh24:mi:ss')
   ,interval  => 'sysdate + 1'
   ,no_parse  => FALSE
  );
  SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
COMMIT;
END;
   执行成功后,可以通过pl/sql客户端或者命令去验证执行是否成功
   命令:  select * from user_jobs
   删除:dbms_jobs.remove('jobnum');

注意:时间如果设置一个未来时间,则第一次执行是再设置的时间点。往后累加间隔时间执行,如果设置的时间点未当前时间之前。则数据库会自动设置当前时间点为第一次执行时间。以当前时间点作为起始点执行。

 

from:http://www.javaeye.com/topic/296019

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值