ORACLE进阶(一)定时任务dbms_job

ORACLE进阶(一)定时任务dbms_job

用plsql窗口下的dbms_job也可以新建job,但是我不推荐,一开始我也用工具创建,但因为很多时候,我没有plsql工具,只有sqlplus。

新建job定时执行:

declare
  job number;
BEGIN
  DBMS_JOB.SUBMIT(  
        JOB => job,  /*自动生成JOB_ID*/  
        WHAT => 'delete from test;',  /*需要执行的存储过程名称或SQL语句*/  
        NEXT_DATE => trunc(sysdate)+(19/24),  /*初次执行时间-立即执行*/  
        INTERVAL => 'trunc(sysdate)+3+(19/24)' /*每隔3天 19点执行一次*/
      );  
  commit;
end;
/

查看定时任务: 

select * from user_jobs where job in(65,66)

修改

 

 begin
--间隔时间
  dbms_job.interval(job,interval);  /*job  job的ID,interval: 计算下一次任务执行的时间表达式*/
 dbms_job.next_date(job,next_date); /*job: job 的ID;nex_date:要修改后的计算下一次执行的时间表达式*/
dbms_job.what('newProcedures();');   /*newProcedures(); 要更改的新操作名称*/  
commit;
end;
   

删除job的正确方法: 

begin
    dbms_job.remove(65);
  end;

手动执行定时任务
 

begin
  dbms_job.run(66);
  end;

 

查看正在执行的定时任务
 

select * from dba_jobs_running

笔记

  • truncate清表操作。WHAT => 'truncate table test;' 会报错,改成WHAT => 'begin execute immediate ''truncate  table test''; end;'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值