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 区块链表创建过程详解
May 15 Oracle
使用Navicat Premium工具将oracle数据库迁移到MySQL
May 27 Oracle
DBCA命令行搭建Oracle ADG的流程
Jun 11 Oracle
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
Jun 21 Oracle
Oracle 临时表空间SQL语句的实现
Sep 25 Oracle
Oracle表空间与权限的深入讲解
Nov 17 Oracle
详解Oracle数据库中自带的所有表结构(sql代码)
Nov 20 Oracle
Oracle数据库中通用的函数实例详解
Mar 25 Oracle
Oracle使用别名的好处
Apr 19 Oracle
排查并解决Oracle sysaux表空间异常增长
Apr 20 Oracle
分析SQL窗口函数之排名窗口函数
Apr 21 Oracle
Oracle用户管理及赋权
Apr 24 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
ThinkPHP查询返回简单字段数组的方法
2014/08/25 PHP
php广告加载类用法实例
2014/09/23 PHP
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
理解Javascript_03_javascript全局观
2010/10/11 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
2012/09/16 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
react开发教程之React 组件之间的通信方式
2017/08/12 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
全面解读Python Web开发框架Django
2014/06/30 Python
Python面向对象编程中的类和对象学习教程
2015/03/30 Python
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
python实现UDP协议下的文件传输
2020/03/20 Python
python drf各类组件的用法和作用
2021/01/12 Python
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
大学活动策划书范文
2014/01/10 职场文书
工厂总经理岗位职责
2014/02/07 职场文书
本科毕业自我鉴定
2014/03/20 职场文书
工作鉴定评语
2014/05/04 职场文书
专职安全员岗位职责
2015/04/11 职场文书
婚庆开业庆典主持词
2015/06/30 职场文书
2015年国庆节寄语
2015/08/17 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书