轻松解决oracle11g 空表不能exp导出的问题

参考http://colcool.iteye.com/blog/1180985

11gR2默认是使用segment creation deferred建立,新建的无记录表不分配segment,当insert第一条记录时分配段空间,不会因truncate而回收,并且在sys schema里不支持,exp也不会导出。

解决方法1:

这个主要还是跟deferred_segment_creation参数有关,在11gR2中该参数的值为true,说明当创建对象(如表),初始没有数据,不会立即创建segment。


如果该参数设置为false,表明之后的创建的表,初始没有数据,会立即创建segment。

使用代码:

alter system set  deferred_segment_creation = false

 

弊端是对之后创建的表有效。



解决方法2:

 

先查询一下哪些表是空的:

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


然后就在结果窗口里面生成了下面那些东西:

 

 

alter table E2USER_STATE allocate extent;  
alter table ENTERPRISE_E2USER allocate extent;  
alter table ENTERPRISE_INFO_TYPE allocate extent;  
alter table ENTERPRISE_MAPMARK allocate extent;  
alter table ENTERPRISE_NEEDTASK allocate extent;  
alter table ENTERPRISE_PICTURE allocate extent;  
alter table ENTERPRISE_REPORT allocate extent;  
alter table ENTERPRISE_REPORT_TYPE allocate extent;  
alter table ENTERPRISE_TEAM allocate extent;  
alter table FROMUSER_ADJUNCT_TARGET allocate extent;  
alter table FROMUSER_OFFER allocate extent;  
alter table NEEDTASK_TYPE allocate extent;  
alter table SYS_PRIVILEGE allocate extent;  
alter table SYS_RELEVANCE_RESOURCE allocate extent;  
alter table SYS_RELEVANCE_TARGET allocate extent;  
alter table SYS_RESOURCE_TYPE allocate extent;  
alter table TASK_FEEDBACK allocate extent;  
alter table TASK_MYTASKTYPE allocate extent;  
alter table TOUSER_MESSAGE allocate extent;  
alter table ABOUTUSER_POINT allocate extent;  
alter table ABOUTUSER_POINT_MARK allocate extent;  
alter table ABOUTUSER_QUERYKEY allocate extent;  
alter table ABOUTUSER_REPORT_HISTORY allocate extent;  
alter table DICT_COMMENT_TYPE allocate extent;  
alter table DICT_INDUSTRY_TYPE allocate extent;  
alter table DICT_POST allocate extent;  
alter table DICT_REGION allocate extent;  
alter table ENTERPRISE_COMMENT allocate extent;  
alter table ENTERPRISE_COMMENT_C allocate extent;  
alter table ENTERPRISE_INFO allocate extent;  
alter table ENTERPRISE_INFO_C allocate extent;  
alter table ENTERPRISE_INFO_STATE allocate extent;  
alter table CALENDAR_CREATETYPE allocate extent;  
alter table CALENDAR_MY allocate extent;  
alter table CALENDAR_TYPE allocate extent;  


ok 执行上面那些sql,之后再exp吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值