oracle 11g用exp无法导出空表的解决方案


1、查询所有空表并分配segment,使用以下语句查询生成修改空表设置的SQL:

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

将查询结果复制粘贴出来,然后执行粘贴出来的sql即可。

2、设置系统参数

设置系统参数,让后续新表自动分配segment。查询系统参数,该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment.

查询语句:

show parameter deferred_segment_creation;

将这个参数修改为FALSE,修改语句为:

alter system set deferred_segment_creation=false;

再次查询确认参数是否修改成功:

show parameter deferred_segment_creation;

可见已经修改为FALSE了,如下图: