在oracle exp 导出表、数据时,碰到该问题(用10g客户端到处11g表、数据时);
解决方法如下:
1. 设置deferred_segment_creation的值为false
此方法只对以后的表有效,之前的表没有Segment的还是没有。
2. 创建表的时候声明立即创建Segment
create table XXX (XXX XXX) SEGMENT CREATION IMMEDIATE;
3.对于已经创建但是还没有Segment的表来说,可以执行alter table XXX allocate extent来使其创建出 Segment,当然也可以插入一条数据,使其创建Segment
最终的解决方法:
先查询一下哪些表是空的:
select table_name from user_tables where NUM_ROWS=0;
下面我们通过select 来生成修改语句:
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
然后复制生成的修改语句执行,问题解决
解决Oracle表无Segment问题
本文介绍了在使用Oracle 10g客户端导出11g表数据时遇到表无Segment的问题及其解决办法。提供了三种解决方案:调整deferred_segment_creation参数、创建表时指定立即创建Segment及使用ALTER TABLE命令分配Extent。
2487

被折叠的 条评论
为什么被折叠?



