Oracle job 定时删除某条记录

1,创建表
create table CJ_JT_NSRCPDMDY
(
ID VARCHAR2(40) not null primary key,
CPBH VARCHAR2(80) not null,
NSRBH VARCHAR2(80) not null,
BZ VARCHAR2(80)
);

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;
/

过程已成功完成

本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2010-11/29791.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值