oracle删除超过一千条数据_oracle批量删除表数据

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

oracle删除超过N天数据脚本

公司内做的项目是工厂内的,一般工厂内数据要求的是实时性,很久之前的数据可以自行删除处理,我们数据库用的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或者其他进行定期调用即可

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

原文地址:https://www.cnblogs.com/wangpengzong/archive/2022/02/28/15944641.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5482.html

(0)
上一篇 2023-05-07
下一篇 2023-05-07

相关推荐

  • Python将数组转化为列表

    Python将数组转化为列表在Python编程中,数组是一种常见的数据结构。数组由一些固定大小的元素组成,这些元素可以是任何数据类型,例如整数、浮点数、字符串等。列表是Python中最基本的数据结构之一,列表由一些可变大小的元素组成,这些元素可以是同一数据类型或不同数据类型的元素。数组和列表在Python编程中有着广泛的应用,经常需要将数组转化为列表或列表转化为数组。本文将围绕如何用Python将数组转化为列表为中心,从多个方面进行详细阐述。

    2024-07-19
    38
  • Fedora 31 – 使用PostgreSQL 12

    Fedora 31 – 使用PostgreSQL 12系统安装扩展软件包 sudo dnf install postgresql12-contrib 数据库安装扩展 CREATE EXTENSION IF NOT EXISTS pgcrypto; 数据…

    2023-01-27
    177
  • redis和mysql一般怎么配合「建议收藏」

    redis和mysql一般怎么配合「建议收藏」redis和mysql配合方法:应用Redis实现数据读写,同时利用队列处理器定时将数据写入mysql。同时要注意避免冲突,在redis启动时去mysql读取所有表键值存入redis中,往redis…

    2022-12-20
    152
  • mysql系列(九)——sql优化「建议收藏」

    mysql系列(九)——sql优化「建议收藏」一、

    2023-03-18
    159
  • 50个SQL语句(MySQL版) 问题十六

    50个SQL语句(MySQL版) 问题十六表结构 student(StuId,StuName,StuAge,StuSex) 学生表 teacher(TId,Tname) 教师表 course(CId,Cname,C_TId) 课程表 sc(S

    2023-03-07
    151
  • MySQL学习总结之路(第四章:运算符)

    MySQL学习总结之路(第四章:运算符)目录 MySQL学习总结之路(第一章:服务与数据库管理) MySQL学习总结之路(第二章:表) MySQL学习总结之路(第三章:数据类型) MySQL学习总结之路(第四章:运算符) 1.1、算数运算符

    2023-04-15
    153
  • MySQL-进阶知识[亲测有效]

    MySQL-进阶知识[亲测有效]存储引擎 连接层:最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限 服务层:第二层架构主要完成大多数的核心服务

    2023-05-06
    137
  • 用 Python 绘制曲线图

    用 Python 绘制曲线图Python 语言是一种解释性、交互式、面向对象的高级程序设计语言。它具有简洁、易读、易扩展等特点,在数据处理、科学计算、人工智能、Web 开发等领域得到了广泛应用。

    2024-08-08
    31

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注