Oracle清空数据库中数据表数据的方法
一、简介
最近在项目发版测试的时候,导出dmp的时候不小心把开发库中的一些脏数据导出来了,测试那边导入进去之后一堆不规范的数据,为了不影响测试结果,于是总结了一个快速清空数据库数据表所有数据的方法。
二、方法
(1). 第一种方法:分步骤实现
【a】第一步:禁止所有的外键约束.
打开plsql ,新建一个查询窗口,输入:
SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' ||
constraint_name || ';'
FROM user_constraints
where CONSTRAINT_TYPE = 'R';
打开能执行sql的窗口即可
【b】第二步:用delete或truncate删除所有表的内容
SELECT 'DELETE FROM ' || table_name || ';'
FROM USER_TABLES
ORDER BY TABLE_NAME;
【c】第三步:启用所有的外键约束
SELECT 'ALTER TABLE ' || table_name || ' enable CONSTRAINT ' ||
constraint_name || ';'
FROM user_constraints
where CONSTRAINT_TYPE = 'R';
依次执行完这三个步骤之后,发现数据库中所有的数据表的数据都清空。
(2).第二种方法:执行脚本生成的sql,然后统一执行
【a】打开plsql查询窗口,执行如下plsql脚本
begin
dbms_output.put_line('--禁用外键SQL【开始】');
for var1 in (SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' ||
constraint_name || ';' as sqltext
FROM user_constraints
where CONSTRAINT_TYPE = 'R') loop
dbms_output.put_line(var1.sqltext);
end loop;
dbms_output.put_line('--禁用外键SQL【结束】');
dbms_output.new_line;
dbms_output.put_line('--删除表记录SQL【开始】');
for var1 in (SELECT 'DELETE FROM ' || table_name || ';' as sqltext
FROM USER_TABLES
ORDER BY TABLE_NAME) loop
dbms_output.put_line(var1.sqltext);
end loop;
dbms_output.put_line('--删除表记录SQL【结束】');
dbms_output.new_line;
dbms_output.put_line('--启用外键SQL【开始】');
for var1 in (SELECT 'ALTER TABLE ' || table_name || ' enable CONSTRAINT ' ||
constraint_name || ';' as sqltext
FROM user_constraints
where CONSTRAINT_TYPE = 'R') loop
dbms_output.put_line(var1.sqltext);
end loop;
dbms_output.put_line('--启用外键SQL【结束】');
dbms_output.new_line;
end;
【b】然后在output这个tab中复制出所有的sql
【c】统一执行sql:
推荐使用第二种方法,更加简单方便,但是如果在生产环境中的话,凡是涉及到删除数据的都要谨慎操作,防止用户的数据丢失,如果大家在有需要清空数据的时候可以考虑使用该方法。
---------------------
Oracle清空数据库中数据表数据的方法的更多相关文章
- 【Sqlserver清空数据库中所有表数据】
脚本: CREATE PROCEDURE sp_DeleteAllData AS EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT AL ...
- 清空SQL Server数据库中所有表数据的方法(转)
清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...
- 清空SQL Server数据库中所有表数据的方法
原文:清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可 ...
- SQLServer清空数据库中所有表的数据
今早同事跟进客户反馈的问题时,提了个要求,要求清空数据库中所有表的数据. 记得之前用游标遍历所有的表名 + exec 动态语句 truncate table 表名 实现过这个功能. 网上搜了下,有更简 ...
- Oracle查询数据库中所有表的记录数
1.Oracle查询数据库中所有表的记录数,但是有可能不准建议用第二种方式进行查询 select t.table_name,t.num_rows from user_tables t 2.创建orac ...
- 关于从Oracle数据库中删除表数据
1,删除表 drop 1.1 执行drop table table_name 语句 被 drop后的表被放在用户回收站(user_recyclebin)里,而没有被直接删除掉,回收站里的表可以被恢复 ...
- Sql Server 导入还有一个数据库中的表数据
在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,此处以SQL Server导入表数据为例.阐述一下: 1.打开SQL Server Management ...
- Mysql如何清空数据库的所有表数据
1.先查询出库中的所有表,“db”是数据库名称 SELECT CONCAT('truncate table ',TABLE_NAME,';') AS a FROM INFORMATION_SCHEMA ...
- oracle删除数据库中的所有数据的拼接语句
create or replace function count_rows/**查询各表实际记录数*/(table_name in varchar2,owner in varchar2 default ...
随机推荐
- 利用ffmpeg0.6.1把.h264纯码流打包成.mp4 .avi等格式 (转载)
转自:http://cache2.weidaohang.org/h/index.php?q=aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1cWluZ183MzkvYXJ0aWNsZS ...
- E20180503-hm
in terms of 根据; 用…的话; 就…而言; 以…为单位; in term of 就……而言 argument n. 论据; 争论,争吵; [数] 幅角; 主题,情节; indicate ...
- csacademy Round #36(模拟+最坏情况)
传送门 题意 给出n种袜子,每种袜子个数a[i],两只相同种类袜子配成一对,询问至少拿出多少只袜子能确保配出k对袜子 分析 In order to find out the minimum numbe ...
- 公司内网,无法使用yum在线下载,肿么办?
1 配置上网代理 编辑/etc/yum.conf,增加如下属性: proxy=你的代理地址 proxy_user=你的用户名 proxy_password=你的密码 2 配置国内163 yum源 备份 ...
- 第九篇 .NET高级技术ref、out
普通参数是“值类型传递拷贝,引用类型传递引用”,但是都不能在函数内部修改外部变量的指向(p.Age=5不是可以吗?),这时候要用ref或者out(相当于把变量都传进去了),他们的作用不同:ref的作用 ...
- pycharm 断点调试
转自; https://blog.csdn.net/chenggong2dm/article/details/9368641 PyCharm 作为IDE,断点调试是必须有的功能.否则,我们还真不如用纯 ...
- C#拷贝整个文件夹以及子目录和其中文件
private void CopyDirectory(string srcPath, string desPath) { string folderNam ...
- SOA架构设计和相关案例分析
一.SOA概念 1.定义: SOA,是一个组件模型,面向服务的体系架构,它将应用程序的不同服务通过这些服务之间定义良好的接口和契约联系起来,不涉及底层编程接口和通讯模型.服务层是SOA的基础,可以直接 ...
- pyinstaller模块
应用场景: 1 把一些python脚本推广到更多机器上运行,但无法保证他们都有安装python解释器,所以,打包可以免去这一障碍 win: 安装: 在cmd中运行pip install pyinsta ...
- 大数模板 (C ++)
上次BC遇到一个大数题目,没有大数模板和不会使用JAVA的同学们GG了,赛后从队友哪里骗出大数模板.2333333,真的炒鸡nice(就是有点长),贴出来分享一下好辣. //可以处理字符串前导零 #i ...