您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Oracle job 定时删除某条记录

2026/2/16 0:51:43发布24次查看
1,创建表create table cj_jt_nsrcpdmdy(id varchar2(40) not null primary key, cpbh varchar2(80) not null,nsrbh va
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;
/
过程已成功完成
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product