Oracle 导出空表的新方法(彻底解决)
背景
使用Exp命令在oracle 11g 以后不导出空表(rowcount=0),是最近在工作中遇到一个很坑的问题,甚至已经被坑了不止一次,所以这次痛定思痛,准备把这个问题彻底解决。之所以叫新方法,那一定有老方法了,这个方法是一位博友很早就提出了,以下是原文,其实也说明了问题的原因
问题根本原因:“Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出”
问题次要原因: 在开发维护期往往需要频繁的做数据库的导入导出操作,使用老方法确实可以解决问题,但是某一次忘记就彻底悲剧
问题扩展:本人发现有时候一些Type,管道类型也无法导出,造成过程,函数编译不通过
解决方案
解决方案其实很简单,就是用expdp,impdp命令代替exp,imp命令彻底解决这个问题,实验如下:
1、建立空表
-- Create table
create table TestEmpty
(
id number,
name number
)
tablespace XXXTEMP
storage
(
initial 1M
next 1M
minextents 1
pctincrease 0
);
2、exp导出语句
exp system/a@orcl225 File=x.dmp owner=someuser
3、被坑截图

4、解决方法,使用expdp进行导出
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
(关于expdp,impdp的用法请自行baidu或者参考文章下部提供的外链)
happy 过程如下图

至此问题已经彻底解决
意外收获
1、提升导出导入速度,在使用expdp和impdp进行Oracle数据库的导入导出,还会给你带来一些意外收获,如导出速度有明显的提升,而且输出的日志也更加准确美观,其实用普通的exp做50w行记录导出表是简直就是个弱暴了工具(从速度上和Sql server差了不知道几条街)
2、可以进行表空间导出(exp其实也可以)
复出的代价
看起来很美好,但是expdp,impdp其实也是有限制的,就是必须在服务器上进行IO操作(具体就是DIRECTORY这参数有关,这里不在详细解释了,自己看教程去)
有价值的链接
【传输表空间】使用 EXPDP/IMPDP工具的传输表空间完成数据迁移
写在最后
写的不好,不喜欢的可以打赏继续鼓励,喜欢的可以点推荐给予支持且随便打赏,开个玩笑,分享出来只是希望我的一点经验是有用的,避免诸位入坑。
Oracle 导出空表的新方法(彻底解决)的更多相关文章
- Oracle 11g用exp无法导出空表的处理方法
Oracle 11G在用EXPORT导出时,空表不能导出. 11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment ...
- Oracle导出空表解决办法
在oracle 11g 中,发现传统的exp不能导出空的表 oracle 11g 新增了一个参数:deferred_segment_creation,含义是段延迟创建,默认是true.具体是什么意思呢 ...
- Oracle导出空表(从来都没有用过的表)
Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出! .设置deferred_segment_creation参数为FALSE后,无论是空表还是 ...
- oracle导出空表
1.先查询数据库空表 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 ...
- oracle 导出空表问题
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
- oracle exp 无法导出空表
oracle exp 无法导出空表 select 'alter table '|| a.table_name ||' allocate extent;' from user_tables a wh ...
- [转载]oracle 11g不能导出空表的多种解决方法
原文地址:11g不能导出空表的多种解决方法">oracle 11g不能导出空表的多种解决方法作者:Anlin_Yang ORACLE 11g 用exp命令导出库文件备份时,发现只能导出 ...
- Oracle 11gR2 用exp无法导出空表解决方法
Oracle 11gR2 用exp无法导出空表解决方法 在11gR2中有个新特性,当表无数据时,不分配segment以节省空间.Oracle 当然在运行export导出时,空表则无法导出,可是还是有解 ...
- Oracle备份恢复之Oracle11G R2用exp无法导出空表解决方法
在11G R2中有个新特性,当表无数据时,不分配segment,以节省空间Oracle当然在执行export导出时,空表则无法导出,但是还是有解决办法的: 解决方法: 一.insert一行,再roll ...
随机推荐
- Thunder团队第二周 - Scrum会议1
Scrum会议1 小组名称:Thunder 项目名称:爱阅app Scrum Master:王航 工作照片: 参会成员: 王航(Master):http://www.cnblogs.com/wangh ...
- c++ string需要注意的地方
There are multiple answers based on what you are doing with the string. 1) Using the string as an id ...
- 【IdentityServer4文档】- 支持协议
IdentityServer 实现了以下协议: OpenID Connect OpenID Connect Core 1.0 (spec) OpenID Connect Discovery 1.0 ( ...
- 共享程序集GAC
原文标题: 原文地址:https://www.cnblogs.com/1996V/p/9037603.html 共享程序集GAC 我上面说了这么多有关CLR加载程序集的细节和规则,事实上,类似于msc ...
- RXSwift --UITableView之初探
对于RXSwift中的一些基本概念和说明请参看其他文章,接下来我们使用RXSwift一步一步去构建TableView,从简单到复杂.iOS开发过程中tableView的使用率是最高的,他的一些代理方法 ...
- C++ 普通函数和虚函数调用的区别
引出:写个类A,声明类A指针指向NULL,调用类A的方法会有什么后果,编译通过吗,运行会通过吗? #include<stdio.h> #include<iostream> us ...
- G# GUID
GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可 ...
- bzoj2257[POI2011]Programming Contest
首先可以费用流建图,左边一堆点表示人,右边一堆点表示题,源点向每个人连floor(t/r)条边,费用依次为r,2r,3r….然后写了一个卡不过去,动态加边也卡不过去,然后我想:这里一定有一些不为人知的 ...
- 【bzoj1143】[CTSC2008]祭祀river Floyd+网络流最小割
题目描述 在遥远的东方,有一个神秘的民族,自称Y族.他们世代居住在水面上,奉龙王为神.每逢重大庆典, Y族都会在水面上举办盛大的祭祀活动.我们可以把Y族居住地水系看成一个由岔口和河道组成的网络.每条河 ...
- hdu 2962 Trucking (最短路径)
Trucking Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...