oracle exp/imp 空表不能导出的问题
2013-10-17 17:28
531 查看
类似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
查询到的结果就是你要执行的命令。执行完之后就可以复制空表了。
使用命令:
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
查询到的结果就是你要执行的命令。执行完之后就可以复制空表了。
相关文章推荐
- oracle 11g空表不能exp导出问题解决方案
- 关于Oracle 11g 空表不能exp导出问题
- 解决oracle 11G exp 不能导出空表问题
- 解决Oracle 11g在用EXP导出时,空表不能导出的问题
- 解决Oracle 11g在用EXP导出时,空表不能导出
- Oracle 11G在用EXP 导出时,空表不能导出解决
- Oracle 11G在用EXP 导出时,空表不能导出解决
- Oracle 11G在用EXP 导出时,空表不能导出解决
- 轻松解决oracle11g 空表不能exp导出的问题。
- 轻松解决oracle11g 空表不能exp导出的问题
- Oracle 11G在用EXP 导出时,空表不能导出解决
- 解决Oracle 11g在用EXP导出时,空表不能导出
- 解决Oracle 11g在用EXP导出时,空表不能导出
- oracle11g 空表不能exp导出的问题
- 解决oracle11g 空表不能exp导出的问题
- Oracle 11G在用EXP 导出时,空表不能导出解决
- ORACLE EXP IMP 导入导出数据 解决如何导出空表
- Oracle 11G在用EXP 导出时,空表不能导出解决
- Oracle 11G在用EXP 导出时,空表不能导出解决
- Oracle 11G在用EXP 导出时,空表不能导出解决