Oracle 11g  plsql无法导出空表,exp EXP-00011: 表不存在   

 Oracle 11g  plsql无法导出空表,exp EXP-00011: 表不存在_Oracle 11g

    oracle11g有个新特性,增加了一个新特性 "deferred_segment_creation" 含义是段延迟创建,默认是true,如果这个参数设置为true,你新创建了一个Table,并且没有向其中插入数据,那么这个表不会立即分配extend,也就是不占数据空间,即表不分配segment以节省空间,所以这些表也没能导出来。如果表中的segment_treated的字段里是“NO”或者“YES”说明了某张表是否分配了segment。

查看表的是否分配segment

SELECT TABLE_NAME,SEGMENT_CREATED FROM USER_TABLES

查看deferred_segment_creation

show parameter deferred_segment_creation;

修改deferred_segment_creation

alter system set deferred_segment_creation=false;

注意:修改为false后, 建的表都会立即分配空间,但是调整前的表都不会改变,需要手动修改分配空间

1.SELECT 'ANALYZE TABLE ' || TABLE_NAME || ' COMPUTE STATISTICS;' from USER_TABLES where NUM_ROWS=0;
2.执行查询结果结果
3.SELECT 'alter table '||TABLE_NAME||' allocate extent;' from USER_TABLES where NUM_ROWS=0;
4.执行查询结果结果

或者

1.SELECT 'ANALYZE TABLE ' || TABLE_NAME || ' COMPUTE STATISTICS;' from USER_TABLES where NUM_ROWS=0 OR NUM=ROWS IS NULL;
2.执行查询结果结果

完成后,则可以用exp正常导出空表

Oracle 11g  plsql无法导出空表,exp EXP-00011: 表不存在_Oracle 11g_02