`

删除所有表中数据

阅读更多

最近一个项目中作结合测试,需要测试数据流的正确性,这就需要在执行过一次完整的流程之后删除所有表中的数据。

当然了,如果只是几个表,那手动操作就很快了,但是在表很多的时候,就需要很多手工操作了。

还好,我们有很多简便的方法,可以自动的删除数据,下面就介绍两种,都是利用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语句的功能限制,不能实现比较复杂的控制。

而第二种就是全自动的,并且可以实现比较复杂控制,但是需要建这么一个存储过程。

 孰优孰劣,还需要根据实际需求自行斟酌。

分享到:
评论

相关推荐

    SqlServer删除所有表数据语句

    下面我们将介绍如何使用一条 Sql Server 语句删除当前数据库中所有表的数据。 删除所有表数据 删除所有表数据的语句使用了存储过程来实现。首先,我们需要创建一个存储过程 `sp_DeleteAllData`,该过程将删除所有...

    删除表中重复数据sql语句

    ### 删除表中重复数据SQL语句详解 #### 一、基础知识概述 在数据库管理中,重复数据是一个常见的问题,尤其当数据库经历长时间的数据输入时,可能会出现数据录入错误或者批量导入过程中导致的数据冗余。重复数据的...

    如何删除表中重复数据

    ### 如何删除表中重复数据 在数据库管理与维护的过程中,经常会遇到表中存在重复记录的问题,这不仅会造成数据冗余、浪费存储空间,还可能导致数据分析结果失真。因此,了解如何有效地删除表中的重复数据是一项重要...

    如何正确的删除Oracle表空间数据文件

    在Oracle数据库管理中,删除表空间数据文件是一项关键操作,涉及到数据的安全性和系统的稳定性。本文将详细介绍如何正确地删除Oracle表空间数据文件,探讨OFFLINE和OFFLINE DROP的区别,以及在操作系统层面删除数据...

    DB2清空表里所有数据.doc

    在 TOAD 这样的数据库管理工具中,你可以编写如下 SQL 语句来删除 Schema 名称下的表中的所有数据: ```sql DELETE FROM Schema 名.表名; ``` 随后,你需要提交(COMMIT)这个事务,以确保更改被永久保存: ```...

    sql server2005&2008删除某个架构名下的所有表或数据

    有时,由于系统更新、重构或者数据迁移的需求,我们可能需要删除特定架构下的所有表或数据。在这个场景下,掌握如何编写相应的SQL语句至关重要。下面将详细讲解如何实现这一目标。 首先,我们需要了解SQL Server中...

    kettle同步数据库所有的表数据到其他库.rar

    本示例中的"Kettle同步数据库所有的表数据到其他库.rar"是一个具体的应用场景,即利用Kettle将一个数据库的所有表数据同步到另一个具有相同表结构的数据库中。这里,我们不仅讨论如何实现这个功能,还将深入探讨...

    PostgreSQL表分区和子表及删除所有的数据库表.zip

    PostgreSQL表分区和子表及删除所有的数据库表 最近需求要求统计DNS近7天每天的解析情况。数据量相对大,所以我这边对表进行分区。 对每天的数据进行分区存储。主表只存储近7天的数据,7天之前的数据删掉。所以我...

    VB 利用DELETE语句删除数据表中的数据

    在VB(Visual Basic)编程环境中,DELETE语句是用于从数据库中的数据表中删除特定记录的一种方法。在处理数据操作时,了解如何有效地使用DELETE语句对于任何数据库应用程序的开发都至关重要。这篇教程将深入探讨如何...

    数据结构与算法c++实现 删除顺序表中大于x的元素

    数据结构与算法c++实现 删除顺序表中大于x的元素 可直接运行 适合初学数据结构与算法大二学生

    sap批量删除、添加、修改透明表数据

    ### SAP批量删除、添加、修改透明表数据 在SAP系统中,对于透明表的管理是非常重要的,因为这些表直接对应于数据库中的物理表。本文将详细介绍如何通过ABAP编程语言实现对SAP透明表数据的批量删除、添加以及修改...

    oracle定时删除表空间的数据并释放表空间

    本文将深入探讨如何在Oracle环境中实现定时删除表空间的数据并释放空间,主要涵盖以下几个关键知识点: 1. **Oracle 表空间(Tablespaces)**:表空间是Oracle数据库中存储数据的基本单位,它由一个或多个数据文件...

    在C#中删除数据表

    删除一个数据表意味着永久性地从数据库中移除该表及其所有关联的数据。在执行这样的操作时,应格外小心,因为一旦数据丢失,通常无法恢复。在C#中,我们通常使用ADO.NET库,它提供了与各种数据库管理系统(如SQL ...

    在SQL数据库所有表中搜索数据

    标题 "在SQL数据库所有表中搜索数据" 描述了一个实用工具,它利用VB.NET编程语言来实现对SQL数据库中的数据进行全局搜索的功能。这个工具对于数据库管理员和开发人员来说非常有价值,因为它允许他们快速有效地定位到...

    删除ORACLE某个用户下所有数据

    ### 删除Oracle某个用户下所有数据 在Oracle数据库管理过程中,有时候我们需要清理某个用户下的所有数据。这可能是因为项目结束、测试环境重置或是其他原因导致的。为了完成这一任务,我们可以通过一系列SQL命令来...

    实验2 创建数据表修改数据表和删除数据表

    实验2主要围绕SQL Server 2012数据库中的数据表操作展开,旨在帮助学习者深入理解和熟练运用数据表的创建、修改和删除等基本功能。实验涵盖了验证性、综合性及设计性实验的不同方面,旨在全面增强实践技能。 首先,...

    Oracle数据库删除两表中相同数据的方法

    在Oracle数据库中删除两表中相同数据的方法是用到in语句,本文通过实例来讲解删除两表中相同数据的方法。

    删除数据库表中数据的存储过程.txt

    根据提供的文件内容,“删除数据库表中数据的存储过程”旨在通过一个存储过程实现对数据库中所有用户定义表的数据进行清空。此过程利用了SQL Server 的系统目录视图 `sysobjects` 来遍历所有表,并逐个执行删除操作...

    mysql 一条语句删除多表数据

    然而,这在删除操作中并不常见,因为通常我们不会关心数据是否存在于所有表中,而是关注特定条件下的数据。 以下是一个简单的示例,展示了如何使用INNER JOIN删除关联的两个表(表A和表B)的记录: ```sql DELETE ...

    SQL表中数据处理.ppt

    综上所述,SQL Server 2000中的数据处理涉及到对表的操作,包括理解和运用数据类型,创建、修改和删除表,以及使用INSERT、UPDATE和DELETE语句对数据进行增、删、改操作,这些都是数据库管理的基础,也是开发和管理...

Global site tag (gtag.js) - Google Analytics