ORACLE数据库导出完成,实际再做导入时,发现有部分表未导入,这部分表有个共性就是空表。
发现11G中有个新特性,当表无数据时,不分配segment,以节省空间。
1、insert一行,再rollback就产生segment了。
该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。
2、设置deferred_segment_creation 参数
alter system set deferred_segment_creation=false;
3、 用以下这句查找空表
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
把查询结果导出,执行导出的语句。
在实际中方法3用得比较多,完成上述之后,再做导出导入。