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 相关文章推荐
zabbix agent2 监控oracle数据库的方法
May 13 Oracle
Oracle创建只读账号的详细步骤
Jun 07 Oracle
ORACLE查看当前账号的相关信息
Jun 18 Oracle
RPM包方式安装Oracle21c的方法详解
Aug 23 Oracle
C#连接ORACLE出现乱码问题的解决方法
Oct 05 Oracle
关于Oracle12C默认用户名system密码不正确的解决方案
Oct 16 Oracle
Oracle表空间与权限的深入讲解
Nov 17 Oracle
Lakehouse数据湖并发控制陷阱分析
Mar 31 Oracle
Oracle 多表查询基本语法实例
Apr 18 Oracle
instantclient客户端 连接oracle数据库
Apr 26 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
ASP知识讲座四
2006/10/09 PHP
php下通过POST还是GET来传值
2008/06/05 PHP
如何突破PHP程序员的技术瓶颈分析
2011/07/17 PHP
php简单防盗链实现方法
2015/07/29 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
删除重复数据的算法
2006/11/23 Javascript
javascript编程起步(第七课)
2007/01/10 Javascript
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
jQuery简单实现tab选项卡切换效果
2016/06/20 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
[01:16:01]VGJ.S vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
2014/04/08 Python
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
python字符串格式化方式解析
2019/10/19 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
爱情保证书范文
2014/02/01 职场文书
软件售后服务方案
2014/05/29 职场文书
外贸业务员求职信
2014/06/16 职场文书
乡镇2014法制宣传日活动总结
2014/11/01 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
企业培训简报范文
2015/07/20 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
JS Canvas接口和动画效果大全
2021/04/29 Javascript