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 24 Oracle
Oracle创建只读账号的详细步骤
Jun 07 Oracle
ORACLE数据库应用开发的三十个注意事项
Jun 07 Oracle
DBCA命令行搭建Oracle ADG的流程
Jun 11 Oracle
ORACLE查看当前账号的相关信息
Jun 18 Oracle
Oracle 死锁的检测查询及处理
Sep 25 Oracle
关于Oracle12C默认用户名system密码不正确的解决方案
Oct 16 Oracle
详解Oracle数据库中自带的所有表结构(sql代码)
Nov 20 Oracle
Oracle中DBLink的详细介绍
Apr 29 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
玩转虚拟域名◎+ .
2006/10/09 PHP
PHP 地址栏信息的获取代码
2009/01/07 PHP
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
Php中使用Select 查询语句的实例
2014/02/19 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
仿iframe效果Aajx文件上传实例
2016/11/18 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
[01:02:45]完美世界DOTA2联赛 LBZS vs Forest 第三场 11.07
2020/11/09 DOTA
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
Django中Model的使用方法教程
2018/03/07 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
2018/07/25 Python
Python和Sublime整合过程图示
2019/12/25 Python
python爬虫学习笔记之pyquery模块基本用法详解
2020/04/09 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
Whistles官网:英国女装品牌
2020/08/14 全球购物
专科应届生求职信
2013/11/24 职场文书
毕业生自我鉴定
2013/12/04 职场文书
如何撰写一封出色的求职信
2014/04/27 职场文书
运动会广播稿100字
2014/09/14 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
JAVA SpringMVC实现自定义拦截器
2022/03/16 Python