Heim >Datenbank >MySQL-Tutorial >Oracle 11g R2 用exp无法导出空表解决方法

Oracle 11g R2 用exp无法导出空表解决方法

WBOY
WBOYOriginal
2016-06-07 16:46:351011Durchsuche

在Oracle 11g R2 中有个新特性,当表无数据时,不分配segment,以节省空间Oracle当然在执行export导出时,空表则无法导出,但是还

在Oracle 11g R2 中有个新特性,当表无数据时,不分配segment,以节省空间Oracle当然在执行export导出时,空表则无法导出,但是还是有解决办法的:

解决方法:

一、insert一行,再rollback就产生segment了。

  该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。

二、设置deferred_segment_creation参数

该参数值默认是TRUE,当改为FALSE时,,无论是空表还是非空表,都分配segment。修改SQL语句:

alter system set deferred_segment_creation=false scope=both;

  需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。

三、  用以下这句查找空表

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

  把查询结果导出,执行导出的语句,强行修改segment值,然后再导出即可导出空表,

注意:数据库插入数据前,修改11g_R2参数可以导出空表

查找空表:

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

更多Oracle相关信息见Oracle 专题页面 ?tid=12

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
Vorheriger Artikel:MySQL 5.5主从复制Nächster Artikel:Oracle控制文件基本维护