项目中遇到创建oracle定时任务

最近项目中遇到创建oracle定时任务还用到了拼串功能记录一下

1.创建定时删除表的存储过程

默认保存当前两天的(今天17号 就删除16号之前的)

CREATE ORREPLACE PROCEDURE delete_proc2  IS

BEGIN

  declare

       sqlstr VARCHAR(200);

       tabletime varchar(10);

    begin

      select to_char(sysdate - 3, 'yyyymmdd')into tabletime from dual;

    for i in 0..5 loop

     sqlstr := 'drop table EVENT' || tabletime|| '_' || i;

      execute immediate sqlstr;

      end loop;

    end;

  COMMIT;

EXCEPTION

  WHEN OTHERS THEN

    DBMS_OUTPUT.PUT_LINE('Exceptionhappened,data was rollback');

    ROLLBACK;

END;

 

2.创建oracle定时任务

用command Window

         var job_num number;

 begin

    dbms_job.submit(:job_num,' delete_proc2;', trunc(sysdate)+23/24,'sysdate+23/24');

 end;

 

        

 

3.通过  select * from Dba_Jobs;来查看任务执行的时间,下次执行时间等

 

4.停止已经启动的定时任务:

先执行selectjob,next_date,next_sec,failures,broken from user_jobs;

以查看定时任务的job号。

在SQL>中执行下面的语句停止一个已经启动的定时任务:


begin
 dbms_job.remove(1);
commit;
end;
/
 

表示停止job为1的任务。

执行后显示如下:


PL/SQL procedure successfully completed

 

 

测试用见表语句

createtablesystem.EVENT20150915_0

 (

  seq NUMBER(2) PRIMARYKEY,

   seqtime  DATE )

你可能感兴趣的:(oracle定时任务,oracle)