Heim >Datenbank >MySQL-Tutorial >Oracle 11g的exp不能导出空表

Oracle 11g的exp不能导出空表

WBOY
WBOYOriginal
2016-06-07 17:16:431289Durchsuche

由于公司内部没有Oracle 11g,以前也没怎么使用过该版本,所以一些新特性还不是很了解。这次导出11g的数据库,就遇到了exp不能导

由于公司内部没有Oracle 11g,以前也没怎么使用过该版本,所以一些新特性还不是很了解。这次导出11g的数据库,就遇到了exp不能导出空表的问题,折腾了好久也没搞明白,后来切换到expdp的数据泵方式,增加version参数,方便导入到10g数据库,终于完整的把数据库给导出了,包括100个多空表。
 
今天上网才了解到,原来这个exp不导出空表,是11g的新特性,,当表无数据时,不分配segment,以节省空间,所以exp导出的时候,不导出这些表。
 
针对这个问题,网上有个方便的解决方案。
 
用以下这句查找空表并生成执行命令
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
 
把查询结果导出,执行导出的语句。
类似 alter table T_TAB allocate extent;
 
然后再用exp的方式去导出数据库,终于可以完整的导出包括空表的数据库。

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn