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 相关文章推荐
使用springboot暴露oracle数据接口的问题
May 07 Oracle
oracle通过存储过程上传list保存功能
May 12 Oracle
oracle覆盖导入dmp文件的2种方法
May 21 Oracle
Oracle11g R2 安装教程完整版
Jun 04 Oracle
ORACLE数据库应用开发的三十个注意事项
Jun 07 Oracle
Oracle数据库中通用的函数实例详解
Mar 25 Oracle
Oracle 多表查询基本语法实例
Apr 18 Oracle
分析SQL窗口函数之聚合窗口函数
Apr 21 Oracle
解决Oracle数据库用户密码过期
May 11 Oracle
Oracle查看表空间使用率以及爆满解决方案详解
Jul 23 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
给多个地址发邮件的类
2006/10/09 PHP
php file_get_contents函数轻松采集html数据
2010/04/22 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
JavaScript Array扩展实现代码
2009/10/14 Javascript
jquery CSS选择器笔记
2010/03/29 Javascript
jquery 新浪网易的评论块制作
2010/07/01 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
封装了jQuery的Ajax请求全局配置
2015/02/05 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
使用javascript插入样式
2016/03/14 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
2020/05/19 Javascript
Python类的用法实例浅析
2015/05/27 Python
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
Python的requests网络编程包使用教程
2016/07/11 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
python进行两个表格对比的方法
2018/06/27 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
python with语句的原理与用法详解
2020/03/30 Python
戴森美国官网:Dyson美国
2016/09/11 全球购物
电子商务专业学生职业生涯规划
2014/03/07 职场文书
致运动员的广播稿
2015/08/19 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书
Flutter Navigator 实现路由传递参数
2022/04/22 Java/Android