首页 > 数据库 > Oracle > oracle job任务定时删除某条记录
感觉很清晰明了就转载过来了
1,创建表
create table CJ_JT_NSRCPDMDY
(
ID
CPBH
NSRBH
BZ
);
2,测试数据
insert into CJ_JT_NSRCPDMDY
values(1,001,001,'启用');
insert into CJ_JT_NSRCPDMDY values(2,002,002,'启用');
insert into CJ_JT_NSRCPDMDY values(3,003,003,'不启用');
3,创建一个删除垃圾记录的存储过程
create or replace procedure mypro as
begin
delete from CJ_JT_NSRCPDMDY where BZ = '不启用';
end;
/
过程已创建
4,创建JOB,实现每个月第一天的午夜12点删除CJ_JT_NSRCPDMDY中不启用的记录。
variable job number;
begin
dbms_job.submit(:job,'mypro;',trunc(last_day(sysdate)+1),'trunc(last_day(sysdate)+1)');
commit;
end;
/
//////////////////////////////////////////////////////////////////
以上即可完成任务,不要往下执行啦。否则,创建作业时,就马上启动作业了。
/////////////////////////////////////////////////////////////////
5,运行JOB
begin
dbms_job.run(:job);
end;
/
过程已成功完成
6,select * from CJ_JT_NSRCPDMDY;
得到预期结果//这个地方应该是查出来3条记录才对,可是已经把不启用的记录提前删除啦。不知道为什么。
7、删除JOB
begin
dbms_job.remove(:job);
end;
/
过程已成功完成
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21987353/viewspace-1116095/ ,如需转载,请注明出处,否则将追究法律责任。