`

删除所有表中数据

阅读更多

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

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

还好,我们有很多简便的方法,可以自动的删除数据,下面就介绍两种,都是利用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`,该过程将删除所有...

    Oracle删除表中的重复数据

    重复数据的存在不仅会占用额外的存储空间,还可能导致数据统计错误、数据分析偏差等问题,因此,有效地删除表中的重复数据是保持数据质量和提高数据库性能的重要环节。本文将详细解析如何在Oracle中删除表中的重复...

    删除表中重复数据sql语句

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

    DB2清空表里所有数据.doc

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

    Sql Server中清空所有数据表中的记录

    清空SQL Server数据库中所有表数据的方法(有约束的情况) 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作...

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

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

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

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

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

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

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

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

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

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

    在C#中删除数据表

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

    SQL--清空所有表的数据

    本文将深入探讨如何使用SQL来清空数据库中所有表的数据,这是一项常见的维护操作,尤其是在测试环境或数据清理时尤为关键。 ### SQL--清空所有表的数据 标题清晰地指出了文章的主题——使用SQL语句清空数据库中的...

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

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

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

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

    MongoDB 数据库创建删除、表(集合)创建删除、数据增删改查2

    但是,插入数据必须发生在集合(类似于关系数据库中的表)中,如 `db.user.insert({“name”:”xiaoming”})`。 创建数据库后,你可以使用 `show dbs` 查看所有数据库,而 `show collections` 用于显示当前数据库中...

    shell实现按照指定日期去删除mysql中表数据

    在linux下通过shell指令实现按照用户指定的日期删除mysql中的表数据,不想收积分的,但是它最低收一分

    SQL表中数据处理.ppt

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

    批量删除数据表

    可以在数据库浏览工具中,执行批量删除数据表,节省时间和操作复杂度。

    oracle删除用户下所有表

    在Oracle数据库管理中,有时候我们可能需要清除某个用户的全部数据,这包括该用户创建的所有表。但是需要注意的是,在执行此类操作时必须格外小心,因为一旦执行了删除命令,这些数据将无法恢复。此外,确保不要误删...

    MySQL删除表数据 MySQL清空表命令 3种方法

    `TRUNCATE TABLE` 命令是用于快速清空表中所有数据的最直接方式。它不记录单个行的删除,而是将整个表视为一个对象进行处理。由于没有触发器和日志记录,所以速度较快。但请注意,`TRUNCATE` 不是真正的删除操作,它...

Global site tag (gtag.js) - Google Analytics