oracle exp/imp 空表不能导出的问题

类似BIN$dJ5h8mAhLr/gQAB/AQB0oA==$0 TABLE这样的表发现有很多,本来200个表的,select  count(*) from tab 都上千了。从网上找资料发现时因为开启了flash功能。



使用命令:

drop table role;
commit;

可以删除role表,但是会产生一个类似:
BIN$dJ4hg1pva6/gQAB/AQByAw==$0 TABLE
的表。

如果这个表还存在,可以使用命令:

flashback table “BIN$dJ4hg1pva6/gQAB/AQByAw==$0” to before drop;
commit;

来恢复至删除前。

彻底删除一个表

drop table role(表名) purge;
commit;

清空所有flash中缓存的表:

purge recyclebin;
commit;

如果想清楚flash中指定的表,可以使用命令:

purge table role(表名);
commit;


11G中有个新特性:deferred_segment_creation 当表无数据时,不分配segment,以节省空间

修改deferred_segment_creation 属性:
show parameter deferred_segment_creation

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean TRUE
SQL> alter system set deferred_segment_creation=false;

系统已更改。

SQL> show parameter deferred_segment_creation

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean FALSE


但是如果你没有权限修改呢?


select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0


查询到的结果就是你要执行的命令。执行完之后就可以复制空表了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值