原因:11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法:设置deferred_segment_creation 1.使用命令 show parameter deferred_segment_creation; 查看deferred_segment_creation当前状态 2.使用命令 alter system set deferred_segment_creation=false; 修改值为false 该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。 需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。 如果你想导出之前的空表,请往下看 1.使用命令 select 'analyze table '||table_name||' compute statistics;' from user_tables; 分析一下当前用户下的所有表,然后把输出的结果执行,如果不分析在查询空表的时候可能查不出结果。 2.使用命令 select * from user_tables where num_rows=0; 查询当前用户下的所有空表。 3.使用命令 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; 生成语句,然后把输出的结果执行 经过如上三部操作,exp就可以导出空表了。
转载于:https://blog.51cto.com/wangxiaoke/2176140