oracle删除超过N天数据脚本的方法

 更新时间:2022年02月28日 14:52:25   作者:不辍  
这篇文章主要介绍了oracle删除超过N天数据脚本的方法,本文通过sql语句给大家详细说明讲解,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

公司内做的项目是工厂内的,一般工厂内数据要求的是实时性,很久之前的数据可以自行删除处理,我们数据库用的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中sys和system用户、系统权限和角色的区别

    Oracle中sys和system用户、系统权限和角色的区别

    本文从用户、系统权限和角色三个维度分别介绍了Oracle中sys和system的区别,希望对大家有所帮助。
    2016-05-05
  • Oracle 19c创建数据库的完整步骤(详细明了)

    Oracle 19c创建数据库的完整步骤(详细明了)

    Oracle19c可以用于创建数据库与表空间,创建表空间特别慢是因为后台进程多,拉低进程速度导致的,下面这篇文章主要给大家介绍了关于Oracle 19c创建数据库的完整步骤,需要的朋友可以参考下
    2023-04-04
  • oracle表空单清理常用代码段整理

    oracle表空单清理常用代码段整理

    清理TEMP临时表空间、清理UNDO表空间、清理TEMPTABS表空间等等,有类似需求的朋友可以参考下哈
    2013-06-06
  • Oracle使用EMCC监控当前所有数据库的流程步骤

    Oracle使用EMCC监控当前所有数据库的流程步骤

    EMCC,全称Oracle Enterprise Manager Cloud Control,是Oracle提供的一套集中化监控工具,可以对数据库、操作系统、中间件等进行监控,本文小编给大家介绍了Oracle使用EMCC监控当前所有数据库的流程步骤,需要的朋友可以参考下
    2024-09-09
  • 简单说明Oracle数据库中对死锁的查询及解决方法

    简单说明Oracle数据库中对死锁的查询及解决方法

    这篇文章主要介绍了Oracle数据库中对死锁的查询及解决方法,文中用两个表创造死锁的简单例子来说明对死锁的撤销方法,需要的朋友可以参考下
    2016-01-01
  • 深入浅析Oracle数据库管理之创建和删除数据库

    深入浅析Oracle数据库管理之创建和删除数据库

    本篇文章给大家介绍oracle数据库管理之创建和删除数据库,本文从数据库管理概述、数据库管理方法、数据库的准则、使用dbca创建数据库、使用dbca删除数据库等五大方面展开话题,需要的朋友一起学习吧
    2015-10-10
  • Oracle 随机数

    Oracle 随机数

    用于抽样统计,从数据库中按类别随机 抽取各类用户
    2009-05-05
  • 详解oracle 日期格式(总结)

    详解oracle 日期格式(总结)

    本篇文章主要介绍了oracle 日期格式,详细的介绍了日期的转换和计算,有兴趣的可以了解一下。
    2016-12-12
  • 详解ORACLE SEQUENCE用法

    详解ORACLE SEQUENCE用法

    Oracle中的sequence用法在oracle中sequence就是所谓的序列号,本文详细的介绍了ORACLE SEQUENCE用法,具有一定的参考价值,有兴趣的可以了解下。
    2016-12-12
  • Oracle函数使索引列失效的解决办法

    Oracle函数使索引列失效的解决办法

    本文详细讲解了Oracle函数使索引列失效的解决办法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12

最新评论