建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

当前位置: 建站学 > 数据库 > Oracle教程 >

使用oracle job 定时删除某条记录

时间:2011-01-10 08:20来源: 作者: 点击:
如何使用oracle job 定时删除某条记录?下文几步方法教你完成! 1,创建表 create table CJ_JT_NSRCPDMDY ( ID     VARCHAR2(40)  not null primary key, CPBH   VARCHAR2(80)  not null, NSRBH  VARCHAR2(80)  not nul

如何使用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;
/

过程已成功完成

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片