实习系列文章
Oracle存储过程和调度器实现自动对数据库过期数据清除
简介
数据库中的某些数据不一定要长期保存,例如:日志等数据、当保存一定时间后,系统允许删除所以系统需要定期删除那些已经过期的数据。
实现原理: 1张表(SYS_DBA_CONFIG)、1个Job定时器(Job_DBA_AutoRunScript)和2个存储过程(DBA_AUTODELETE、DBA_AUTORUNSCRIPT)实现自动清理不同表中的过期数据。 通过定时器调用存储过程查表判断是否开启过期数据清理功能,如果开启调用数据清理的存储过程。
建表
建立数据库任务配置表,用来管理数据库中那些表需要定期处理。
表格类型
字段名 | Type | 非空 | 注解 |
---|---|---|---|
NAME | VARCHAR2(200) | ✔ | 任务执行对象名称 |
VALUE | VARCHAR2(200) | ✔ | 设置保存时间(天) |
TYPE | VARCHAR2(200) | ✔ | 执行类型 |
ISRUN | NUMBER(1,0) | ✔ | 是否执行 |
REMARK | VARCHAR2(200) | 对应表中判断时间的字段 | |
COLUMNTYPE | VARCHAR2(200) | 字段类型 |
建表语句
create table SYS_DBA_CONFIG
(
NAME VARCHAR2(200) not null,
value VARCHAR2(200) not null,
type VARCHAR2(200) not null,
REMARK VARCHAR2(200) not null
ISRUN NUMBER(1) not null,
COLUMN