oracle删除超过N天数据脚本

公司内做的项目是工厂内的,一般工厂内数据要求的是实时性,很久之前的数据可以自行删除处理,我们数据库用的oracle,所以就想着写一个脚本来删除,这样的话,脚本不管放在那里使用都可以达到效果

首先删除数据的sql语句写一下

DELETE FROM tablename WHERE createdtime<trunc(sysdate)-59; --删除59天前的数据 commit; --提交事务 alter table tablename enable row movement; --数据删除之后会产生很多空行,打开行移动,移动之后rowid会发生变化 shrink space; --连同索引一起压缩,解决delete语句造成的空间未释放问题 disable --关闭行迁移 < code></trunc(sysdate)-59;>

这一段相当于

SPOOL C:\emp.lst
SET LINESIZE 100
SET PAGESIZE 50
SELECT *
FROM emp;
SPOOL OFF

所以我们得到了一个新的sql文件,例如C:\emp.sql

CONNECT scott/tiger
--&#x5F00;&#x59CB;&#x5220;&#x9664;
DELETE FROM tablename WHERE createdtime<trunc(sysdate)-59; commit; alter table tablename enable row movement; shrink space; disable --结束删除 --如果删除多个表,可以将上面语句复制一下,tablename和where条件修改一下就可以了 exit; < code></trunc(sysdate)-59;>

然后创建一个文件C:\get_emp.bat

@echo off
echo &#x5F00;&#x59CB;&#x5220;&#x9664;&#x8FC7;&#x671F;&#x6570;&#x636E;&#x5E76;&#x7F29;&#x5BB9;

sqlplus /nolog @C:\emp.sql

echo &#x6267;&#x884C;&#x6210;&#x529F;
pause
exit

保存之后,执行一下看会不会出现问题,如果不会出现问题,添加一下windows的任务计划程序,或者自己写一个windows服务,定期调用一下这个bat就可以了

linux版本的类似,写法这个连接下面有,写完之后先进行测试,然后使用cron或者其他进行定期调用即可

当然,操作数据库表不局限于定期清理数据,也可以进行报表生成、新表创建等其他操作

Original: https://www.cnblogs.com/spatxos/p/15944641.html
Author: spatxos
Title: oracle删除超过N天数据脚本

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582908/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SpringBoot-Redis

    SpringBoot 整合 Redis SpringBoot-Redis 15.1 导入相关依赖 org.springframework.boot spring-boot-star…

    Linux 2023年6月14日
    097
  • mysql update语句的执行流程是怎样的

    update更新语句流程是怎么样的 update更新语句基本流程也会查询select流程一样,都会走一遍。 update涉及更新数据,会对行加dml写锁,这个DML读锁是互斥的。其…

    Linux 2023年6月8日
    0102
  • 008 Linux 文件查找 find

    在 Linux 系统,find 毫无疑问是最强的文件查找工具。find 一般会与其他命令结合,将查找到的结果作为参数传入到后置命令中,进行删除、统计、复制迁移等操作。 find /…

    Linux 2023年5月27日
    0104
  • Shell 函数带中横线问题排查

    Shell 中编写的函数,如果函数名中带了中横线,在使用 /bin/sh 执行时会报错。 ➜ subprocess git:(master) ✗ cat kubectl.sh _k…

    Linux 2023年5月28日
    095
  • C语言实现九九乘法口诀表

    儿子六岁了,奶奶在家里给孩子教乘法口诀, 昨天又把大学一年级C语言课程上要求实现的九九乘法口诀表用C语言实现了一遍,代码如下: #include int main() { int …

    Linux 2023年6月13日
    094
  • MySQL主从复制的原理和实现

    垂直扩展: 横向扩展: 复制:使每一个节点都有相同的数据集 MySQL复制的实现:使用二进制日志来实现 提高性能(负载均衡)、 实现读写分离 实现数据备份的功能(实时备份) 高可用…

    Linux 2023年6月7日
    0110
  • C语言—>指针

    当两个指针 p1, p2相减时, p2-p1就是从 p1到 p2,不包含 p2的元素个数,结果的类型是 ptrdiff_t #include int main() { int a[…

    Linux 2023年6月8日
    093
  • 重新认识运维

    重新认识运维 背景 随着业务的发展,新技术的迭代,公司研发采用了微服务架构或是上云等等,这没有考虑运维成本和效率,带来运维极大的复杂性,让运维纯手工,苦不堪言,痛苦。从现象来看,运…

    Linux 2023年6月8日
    0112
  • [SSM架构]springboot笔记

    框架基础介绍 框架概念 框架(Framework)是一个半成品软件,将所有的、公共的、重复的功能解决掉,帮助程序快速高效的进行开发,他是可重复的,可拓展的。 常见的框架&#8211…

    Linux 2023年6月13日
    094
  • windows环境 php 连接 sql server

    下载扩展: ODBC Driver: 安装配置: 下载SQL Server的PHP扩展(Microsoft Drivers for PHP for SQL Server),连接里有…

    Linux 2023年6月7日
    0111
  • 零成本搭建个人博客之迁移Pages和域名

    在上文[零成本搭建个人博客之搭建篇]中,我将Hugo博客搭建到 Github Page上,后来考虑到用 Cloudflare cdn加速,干脆就把博客站点迁移到Cloudflare…

    Linux 2023年6月7日
    097
  • 03-MySQL事务

    数据库事务 1、事务特性 1.1、原子性 即不可分割性,事务要么全部被执行,要么就全部不被执行 1.2、一致性 事务的执行使得数据库从一种正确状态转换成另一种正确状态 1.3、隔离…

    Linux 2023年6月7日
    0101
  • Linux、Windows下Redis的安装即Redis的基本使用详解

    前言 什么是Redis Redis是一个基于 内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件,它是「 Remote Dictionary …

    Linux 2023年6月6日
    0126
  • SpringBoot-Mybatis

    SpringBoot 整合 Mybatis SpringBoot-Mybatis 10.1 导入 MyBatis 所需要的依赖 org.mybatis.spring.boot my…

    Linux 2023年6月14日
    0100
  • ansible -自动运维工具

    Ansible-自动运维工具 1.简介 Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbe…

    Linux 2023年6月13日
    0118
  • redis查看状态信息

    redis查看状态信息 info all|default Info 指定项 server服务器信息 redis_version : Redis 服务器版本 redis_git_sh…

    Linux 2023年5月28日
    0110
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球