本文主要向大家介绍了Oracle数据库之批量清除一个表的数据,TB级别数据,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

有个需求,要求清理8TB的数据,只保留一个月的数据,现有数据量由2010年至2018年底都需要清除,因此写了通用的该清除脚本。该表为没有分区的含有BLOB的大表,一共由三列,file_no,BLOB,还有create_time列,其中file_no为主键,create_time非空。

脚本如下:create or replace procedure proc_batch_delete(PI_table_name in varchar2, -- table name which will delete dataPI_where_condition in varchar2,  -- delete sql conditionPI_thread_count in varchar2,      -- thread number of the sql which use parallel hintPI_commit_count in varchar2) is   -- per delete count and commit countv_delete integer;v_sql varchar2(2000);begindbms_output.put_line('Delete table is ' || PI_table_name || ';');dbms_output.put_line('Where condition is ' || PI_where_condition || ';');dbms_output.put_line('Number of threads is ' || to_char(PI_thread_count) || ';');dbms_output.put_line('Commit count is  ' || to_char(PI_commit_count) || ';');dbms_output.put_line('Now start to batch delete. Timestamp is ' || to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'));

v_delete := 0;

execute immediate 'alter session enable parallel dml';

v_sql := 'delete /+ parallel('||PI_table_name || ' ' || PI_thread_count ||')/ from ' || PI_table_name ||' where '|| PI_where_condition || 'and rownum <= ' || PI_commit_count;  dbms_output.put_line('Sql is ' || v_sql);

while 1=1 loopEXECUTE IMMEDIATE v_sql;      if SQL%NOTFOUND then exit;      else           v_delete:=v_delete + SQL%ROWCOUNT;      end if;      commit; dbms_output.put_line('already deleted :' || to_char(v_delete) ||'.Timestamp is' || to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'));    end loop;    commit;

dbms_output.put_line('End to batch delete. Timestamp is ' || to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'));

end proc_batch_delete;

1.该图

2.执行语句

3.输入值

4.显示值pi_table_name 需要删除数据的表名pi_where_condition 选择条件pi_thread_count并发线程数 pi_commit_count 每次删除和提交事务数量

本文由职坐标整理并发布,希望对同学们学习Oracle有所帮助,更多内容请关注职坐标数据库Oracle数据库频道!

快速清除oracle多个表,Oracle数据库之批量清除一个表的数据,TB级别数据相关推荐

  1. 如何更新mysql数据库字段_如何使用MySQL一个表中的字段更新另一个表中字段

    1,修改1列 update student s, city c set s.city_name = c.name where s.city_code = c.code; 2,修改多个列 update ...

  2. C++基础:什么是数据库?如何创建一个表?

    标题:C++基础:什么是数据库?如何创建一个表? 如果你是一个数据库新手,这将给你提供一些必需的基本知识.理解数据库是掌握MySQL的一个重要部分. 什么是数据库 数据库这个术语的用法很多,数据库是一 ...

  3. mysql数据库中,查询一个表的下一条数据减上一条数据的值的写法

    mysql数据库中,查询一个表的下一条数据减上一条数据的值的写法: select a.nodeId,a.cpuCharge-b.cpuCharge cpuCharge, a.chargeTime fr ...

  4. SQL数据库中如何把一个表中的数据复制到另一个表中?

    SQL数据库中如何把一个表中的数据复制到另一个表中?** 1整个表复制:** insert into table1 select * from table2 2部分列复制:** insert into ...

  5. 数据表从一个表空间中移动到另一个表空间中

    数据表从一个表空间中移动到另一个表空间中 1) alter table [table_name] move tablespace [new tablespace]; 移动LOB字段 2) alter ...

  6. mysql将一个表的字段更新到另一个表中

    mysql将一个表的字段更新到另一个表中 今天遇到了这个问题 百度了一下,给出的解决方案如下 UPDATE T_CONDETAILED SET latesprice=t_temp.amount FRO ...

  7. 查看oracle的版本、所在表空间、字符集及查询一个表的所有字段名和数据类型

    一.oracle 数据库版本 select * from v$version; 注:https://blog.csdn.net/zhufengzhuiri/article/details/791391 ...

  8. oracle可以创建多个数据库实例吗_oracle 一个实例下可以建多个数据库么?

    oracle 如何在一个数据库创建多个实例 首先"创建数据库的时候起不同的名字"不是一个数据库对应多个实例,概念不清~ 如果就你的问题来看,你可以查阅关于Oracle rac 的信 ...

  9. oracle查看所有用户_Oracle实用命令查看共用一个表空间的所有用户

    概述 有朋友问到如何查出表空间都被哪些用户使用的一些方法,因为有几种情况需要考虑,也顺便做个总结. 需求:如何查看共用一个表空间的所有用户 查看某表空间下表的所有者 使用dba用户查询: 1.如果先要 ...

最新文章

  1. Windows7 设置 Java环境变量
  2. 两对光纤收发器用网线连接_光纤那么快,路由器和电脑之间为何不用光纤连接,反而用普通网线...
  3. 《CUDA C编程权威指南》——3.4 避免分支分化
  4. 安卓盒子运行 linux,全志 Allwinner A20 机顶盒刷入原生 Debian
  5. xhr返回值_XMLHttpRequest发送POST、GET请求以及接收返回值
  6. Java scirpt简介
  7. leetcode题解677-键值映射
  8. php 破解加密帖子,某PHP加密文件解密过程初探 · 浮萍’s Blog
  9. html 京东购物车样式,js京东简单购物车增减功能
  10. php访问对象的成员,如何使用PHP从JSON访问另一个对象内的类的成员
  11. #洛谷oj:P3144 Closing the Farm S
  12. (JS)蔚蓝网上书店(课本案例)
  13. vscode:解决按英文感叹号!+tab,无法生成html模板框架的问题
  14. php revel,Revel命令行工具源码阅读
  15. JAVA语言基础知识总结
  16. 掷骰子python代码_python模拟掷骰子
  17. python画布组件_Python Tkinter 画布(Canvas)
  18. pythonarp工具_Python 实现ARP扫描欺骗工具
  19. chrome总是提示\喔唷,崩溃啦\的解决办法
  20. oracle+not+logged+on,sqlplus ORA-01012: not logged on

热门文章

  1. 兄弟 你们永远是我的大哥哥
  2. 常用的python模块
  3. 简单的图论问题【湖南省赛】
  4. Kraft 0.50 发布,小型文档管理程序
  5. 开源项目的网址[不定时更新]
  6. Eclipse 调试器
  7. 如何正确的关闭 MFC 线程
  8. linux下远程访问Mysql
  9. 大数据_Flink_数据处理_运行时架构2_作业提交流程_抽象架构---Flink工作笔记0017
  10. MyCat分布式数据库集群架构工作笔记0004---Mycat的实现原理