您的位置:首页 > 数据库 > Oracle

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

2015-09-17 14:05 639 查看
最近项目中遇到创建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 )
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: