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 数据仓库ETL技术之多表插入语句的示例详解
Apr 12 Oracle
oracle覆盖导入dmp文件的2种方法
May 21 Oracle
使用Navicat Premium工具将oracle数据库迁移到MySQL
May 27 Oracle
Lakehouse数据湖并发控制陷阱分析
Mar 31 Oracle
排查并解决Oracle sysaux表空间异常增长
Apr 20 Oracle
分析SQL窗口函数之聚合窗口函数
Apr 21 Oracle
Oracle用户管理及赋权
Apr 24 Oracle
Oracle中DBLink的详细介绍
Apr 29 Oracle
oracle数据库去除重复数据
May 20 Oracle
Oracle删除归档日志及添加定时任务
Jun 28 Oracle
oracle设置密码复杂度及设置超时退出的功能
Jun 28 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版本兼容之openssl调用参数
2018/07/25 PHP
动态加载js的几种方法
2006/10/23 Javascript
JS 强制设为首页的代码
2009/01/31 Javascript
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
简介JavaScript中getUTCMonth()方法的使用
2015/06/10 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
jquery点击缩略图切换视频播放特效代码分享
2015/09/15 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
2015/10/10 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
Vue Ajax跨域请求实例详解
2017/06/20 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
2017/11/11 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
Vue实现摇一摇功能(兼容ios13.3以上)
2021/01/26 Vue.js
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
护士先进个人总结
2015/02/13 职场文书
公司宣传语大全
2015/07/13 职场文书