oracle 11g 导出空表 exp 导出
Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。
设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment。
在sqlplus中,执行如下命令:
alter system set deferred_segment_creation=false;
show parameter deferred_segment_creation;
在没有dba权限的条件下,用exp 导出是一个不错的选择,但是在遇到空表的情况下 11g默认不导出空表,则可以进行如下操作
对已存在的表 执行如下 ,要经过统计分析后 num_rows=0 才准确
分析表例子: analyze table test1 compute statistics
Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。
设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment。
在sqlplus中,执行如下命令:
alter system set deferred_segment_creation=false;
show parameter deferred_segment_creation;
该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用
示例如下,只举例第一种情况 在scott 用户下
创建表
create table scott.test1(id number(6),name varchar2(20));
分析表
analyze table scott.test1 compute statistics
导出scott 用户下的表
exp userid=scott/tiger@orcl file=f:\scott.dmp
无 test1 表
然后给 test1 分配空间
alter table scott.test1 allocate extent;
再进行 导出操作,截图如下
空表 test 1 成功导出