oracle删除超过N天数据脚本的方法


Posted in Oracle onFebruary 28, 2022

公司内做的项目是工厂内的,一般工厂内数据要求的是实时性,很久之前的数据可以自行删除处理,我们数据库用的oracle,所以就想着写一个脚本来删除,这样的话,脚本不管放在那里使用都可以达到效果

由于服务器是windows,参照Oracle Shell Scripting中,我们写一下windows下的脚本

首先删除数据的sql语句写一下

DELETE FROM tablename WHERE createdtime<TRUNC(SYSDATE)-59;  --删除59天前的数据
commit;   --提交事务
alter table tablename enable row movement;  --数据删除之后会产生很多空行,打开行移动,移动之后rowid会发生变化
alter table tablename shrink space;  --连同索引一起压缩,解决delete语句造成的空间未释放问题
alter table tablename disable row movement;  --关闭行迁移

这一段相当于

SPOOL C:\emp.lst
SET LINESIZE 100
SET PAGESIZE 50
SELECT *
FROM emp;
SPOOL OFF

所以我们得到了一个新的sql文件,例如C:\emp.sql

CONNECT scott/tiger
--开始删除
DELETE FROM tablename WHERE createdtime<TRUNC(SYSDATE)-59;
commit;
alter table tablename enable row movement;
alter table tablename shrink space;
alter table tablename disable row movement;
--结束删除
--如果删除多个表,可以将上面语句复制一下,tablename和where条件修改一下就可以了
EXIT;

然后创建一个文件C:\get_emp.bat

@echo off
echo 开始删除过期数据并缩容
sqlplus /nolog @C:\emp.sql
echo 执行成功
pause
exit

保存之后,执行一下看会不会出现问题,如果不会出现问题,添加一下windows的任务计划程序,或者自己写一个windows服务,定期调用一下这个bat就可以了

linux版本的类似,写法这个连接下面有,写完之后先进行测试,然后使用cron或者其他进行定期调用即可

当然,操作数据库表不局限于定期清理数据,也可以进行报表生成、新表创建等其他操作

到此这篇关于oracle删除超过N天数据脚本的文章就介绍到这了,更多相关oracle删除数据脚本内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Oracle 相关文章推荐
Oracle笔记
Apr 05 Oracle
Oracle 数据仓库ETL技术之多表插入语句的示例详解
Apr 12 Oracle
使用Navicat Premium工具将oracle数据库迁移到MySQL
May 27 Oracle
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
Jun 04 Oracle
快速学习Oracle触发器和游标
Jun 30 Oracle
Oracle 临时表空间SQL语句的实现
Sep 25 Oracle
详解Oracle数据库中自带的所有表结构(sql代码)
Nov 20 Oracle
oracle删除超过N天数据脚本的方法
Feb 28 Oracle
分析SQL窗口函数之排名窗口函数
Apr 21 Oracle
oracle数据库去除重复数据
May 20 Oracle
Oracle锁表解决方法的详细记录
Jun 05 Oracle
oracle重置序列从0开始递增1
Feb 28 #Oracle
Oracle 触发器trigger使用案例
Feb 24 #Oracle
Oracle中update和select 关联操作
Jan 18 #Oracle
使用Oracle命令进行数据库备份与还原
Dec 06 #Oracle
详解Oracle数据库中自带的所有表结构(sql代码)
Oracle表空间与权限的深入讲解
Nov 17 #Oracle
详解Oracle块修改跟踪功能
Nov 07 #Oracle
You might like
PHP中路径问题的解决方案
2006/10/09 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
Angular异步变同步处理方法
2018/08/13 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
[01:03:22]LGD vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
pandas通过loc生成新的列方法
2018/11/28 Python
使用python3实现操作串口详解
2019/01/01 Python
Pytorch中实现只导入部分模型参数的方式
2020/01/02 Python
python3 sleep 延时秒 毫秒实例
2020/05/04 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
详解python with 上下文管理器
2020/09/02 Python
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
外贸销售员求职的自我评价
2013/11/23 职场文书
饭店工作计划书
2014/01/10 职场文书
物流专业求职计划书
2014/01/10 职场文书
专项法律服务方案
2014/06/11 职场文书
营销与策划实训报告
2014/11/05 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
信用卡工作证明范本
2015/06/19 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js