最近一个项目中作结合测试,需要测试数据流的正确性,这就需要在执行过一次完整的流程之后删除所有表中的数据。
当然了,如果只是几个表,那手动操作就很快了,但是在表很多的时候,就需要很多手工操作了。
还好,我们有很多简便的方法,可以自动的删除数据,下面就介绍两种,都是利用Oracle中的一个表--ALL_ALL_TABLES。
1)生成删除数据的语句
SELECT 'TRUNCATE TABLE '||TABLE_NAME||';' FROM ALL_TABLES WHERE OWNER = 'XXX'
执行这条SQL语句,就可以生成删除表数据的SQL语句,然后把这些SQL语句复制到文件中,
然后利用SQL*PLUS的命令执行这个文件,进行数据的删除。
2)利用存储过程删除数据
CREATE OR REPLACE PROCEDURE DELALL(USERNAME IN VARCHAR2)
IS
CURSOR tblname_cur(USERNAME IN VARCHAR2) IS
SELECT TABLE_NAME FROM ALL_ALL_TABLES WHERE OWNER = USERNAME;
lv_sql VARCHAR2(100);
BEGIN
FOR tblname_rec IN tblname_cur(USERNAME) LOOP
lv_sql := ' ';
lv_sql := 'TRUNCATE TABLE ' || tblname_rec.TABLE_NAME || ' DROP STORAGE';
EXECUTE IMMEDIATE lv_sql;
COMMIT;
END LOOP;
END;
比较一下以上两种作法:
第一种比较简单,但是是半自动的,先生成SQL,然后再执行删除操作,
并且由于SQL语句的功能限制,不能实现比较复杂的控制。
而第二种就是全自动的,并且可以实现比较复杂控制,但是需要建这么一个存储过程。
孰优孰劣,还需要根据实际需求自行斟酌。
分享到:
相关推荐
下面我们将介绍如何使用一条 Sql Server 语句删除当前数据库中所有表的数据。 删除所有表数据 删除所有表数据的语句使用了存储过程来实现。首先,我们需要创建一个存储过程 `sp_DeleteAllData`,该过程将删除所有...
重复数据的存在不仅会占用额外的存储空间,还可能导致数据统计错误、数据分析偏差等问题,因此,有效地删除表中的重复数据是保持数据质量和提高数据库性能的重要环节。本文将详细解析如何在Oracle中删除表中的重复...
### 删除表中重复数据SQL语句详解 #### 一、基础知识概述 在数据库管理中,重复数据是一个常见的问题,尤其当数据库经历长时间的数据输入时,可能会出现数据录入错误或者批量导入过程中导致的数据冗余。重复数据的...
### 如何删除表中重复数据 在数据库管理与维护的过程中,经常会遇到表中存在重复记录的问题,这不仅会造成数据冗余、浪费存储空间,还可能导致数据分析结果失真。因此,了解如何有效地删除表中的重复数据是一项重要...
在Oracle数据库管理中,删除表空间数据文件是一项关键操作,涉及到数据的安全性和系统的稳定性。本文将详细介绍如何正确地删除Oracle表空间数据文件,探讨OFFLINE和OFFLINE DROP的区别,以及在操作系统层面删除数据...
在 TOAD 这样的数据库管理工具中,你可以编写如下 SQL 语句来删除 Schema 名称下的表中的所有数据: ```sql DELETE FROM Schema 名.表名; ``` 随后,你需要提交(COMMIT)这个事务,以确保更改被永久保存: ```...
清空SQL Server数据库中所有表数据的方法(有约束的情况) 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作...
有时,由于系统更新、重构或者数据迁移的需求,我们可能需要删除特定架构下的所有表或数据。在这个场景下,掌握如何编写相应的SQL语句至关重要。下面将详细讲解如何实现这一目标。 首先,我们需要了解SQL Server中...
本示例中的"Kettle同步数据库所有的表数据到其他库.rar"是一个具体的应用场景,即利用Kettle将一个数据库的所有表数据同步到另一个具有相同表结构的数据库中。这里,我们不仅讨论如何实现这个功能,还将深入探讨...
PostgreSQL表分区和子表及删除所有的数据库表 最近需求要求统计DNS近7天每天的解析情况。数据量相对大,所以我这边对表进行分区。 对每天的数据进行分区存储。主表只存储近7天的数据,7天之前的数据删掉。所以我...
在VB(Visual Basic)编程环境中,DELETE语句是用于从数据库中的数据表中删除特定记录的一种方法。在处理数据操作时,了解如何有效地使用DELETE语句对于任何数据库应用程序的开发都至关重要。这篇教程将深入探讨如何...
同时,为了释放表空间,需要创建一个临时表,复制原表的所有数据到临时表,然后删除原表,最后再将临时表的数据插入到原表。 代码如下: ```sql create or replace procedure del_tab as v_time number; begin ...
### SAP批量删除、添加、修改透明表数据 在SAP系统中,对于透明表的管理是非常重要的,因为这些表直接对应于数据库中的物理表。本文将详细介绍如何通过ABAP编程语言实现对SAP透明表数据的批量删除、添加以及修改...
删除一个数据表意味着永久性地从数据库中移除该表及其所有关联的数据。在执行这样的操作时,应格外小心,因为一旦数据丢失,通常无法恢复。在C#中,我们通常使用ADO.NET库,它提供了与各种数据库管理系统(如SQL ...
本文将深入探讨如何使用SQL来清空数据库中所有表的数据,这是一项常见的维护操作,尤其是在测试环境或数据清理时尤为关键。 ### SQL--清空所有表的数据 标题清晰地指出了文章的主题——使用SQL语句清空数据库中的...
标题 "在SQL数据库所有表中搜索数据" 描述了一个实用工具,它利用VB.NET编程语言来实现对SQL数据库中的数据进行全局搜索的功能。这个工具对于数据库管理员和开发人员来说非常有价值,因为它允许他们快速有效地定位到...
### 删除Oracle某个用户下所有数据 在Oracle数据库管理过程中,有时候我们需要清理某个用户下的所有数据。这可能是因为项目结束、测试环境重置或是其他原因导致的。为了完成这一任务,我们可以通过一系列SQL命令来...
实验2主要围绕SQL Server 2012数据库中的数据表操作展开,旨在帮助学习者深入理解和熟练运用数据表的创建、修改和删除等基本功能。实验涵盖了验证性、综合性及设计性实验的不同方面,旨在全面增强实践技能。 首先,...
在Oracle数据库中删除两表中相同数据的方法是用到in语句,本文通过实例来讲解删除两表中相同数据的方法。
在linux下通过shell指令实现按照用户指定的日期删除mysql中的表数据,不想收积分的,但是它最低收一分