在oracle导出表的命令exp时候发现一个问题,就是部分表完全的导不出来,经检查发现只要是表为空的都会导不出来。
在如下表中发现segment_created都为NO的是导不出来的,经查询后,将语句提取出来执行即可。
select ‘alter table ‘|| table_name ||‘ allocate extent;‘
from user_tables where segment_created=‘NO‘;
alter table table allocate extent;
备注:在11g中有一个特性就是参数deferred_segment_creation,默认是true的,表示段延迟创建。当创建一个新的表,并且该表还没有数据的情况
下,该表是不会分配extent的,所以说该表不占数据空间,此时没有分配segment,导致exp导不出来。因此,根据上述方法,查询user_tables表,如果segment_created为NO的,说明该表没有分配segment,查询出来执行下即可。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-04 07:35:33