oracle11g导出空表

ORACLE 11G在用EXP导出时,发现空表(没有数据或者没有用过的表)不能导出了。     查了一下资料,说是Oracle 11G中有个新特性,当表无数据时,不分配segment,以节省空间,所以这些表也没能导出来。用下面的SQL查询,发现不能导出的表, segment_created 字段值都是 ‘NO‘。 Select * from user_tables where segment_created = ‘NO‘;

1、执行以下语句,批量生成修改语句,在执行生成后的修改语句:

Select ‘alter table ‘||table_name||‘ allocate extent;‘ from user_tables where num_rows=0;

Select ‘alter table ‘||table_name||‘ allocate extent;‘ from user_tables where segment_created= ‘NO‘;

拷贝生成的sql,进行执行

oracle11g导出空表,布布扣,bubuko.com

时间: 06-17

oracle11g导出空表的相关文章

oracle11g 导出空表

--对已存在的表 执行如下 ,要经过统计分析后 num_rows=0 才准确select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出.设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment. 在sqlplus

oracle11g不能导出空表

Oracle11g的数据库迁移,习惯性的用了exp/imp,然后在新的数据库发现,空表根本没有exp出来,然后查资料,发现了如下信息: ORACLE 11G在用EXPORT导出时,空表不能导出. 11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2.设置deferred_segment_creation 参数 该参数值默认

Oracle11g在使用exp导出时不导出空表问题的解决办法

11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2.设置deferred_segment_creation 参数 show parameter deferred_segment_creation NAME                                 TYPE        VALUE --------

Oracle11G R2用exp无法导出空表解决方法

在11G R2中有个新特性,当表无数据时,不分配segment,以节省空间Oracle当然在执行export导出时,空表则无法导出,但是还是有解决办法的: 解决方法: 一.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 二.设置deferred_segment_creation参数 该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment.修改SQL语句: alter sy

Oracle11g用exp无法导出空表的解决方法

方法1: 设置deferred_segment_creation参数 SQL> show parameter deferred_segment_creation NAME TYPE VALUE -------------------------- ----------- ---------- deferred_segment_creation boolean TRUE SQL> alter system set deferred_segment_creation=false; 系统已更改. S

转 一个oracle11g 使用exp导出空表丢失的问题分析及解决办法

用exp无法导出空表解决方法 最早的一次使用oracle 11g导出数据发现有的表丢失了,感觉莫名其妙的,后来终于找到原因了. 找到问题以后,再看看解决方案.11GR2中有个新特性,当表无数据时,不分配segment,以节省空间,可是在用EXPORT导出时,空表也不能导出,这就导致迁移时候丢失了一些表,存储过程也失效了.本以为EXP能有相应的控制开关,可以切换是否导出空表,看了下帮助,没有太大的改变.有些奇怪,难道11GR2不更新EXP的功能了,还看有的帖子说11GR1作为客户端去卸载11GR2

如何解决Oracle11g使用dmp命令无法导出空表问题

导出:exp  username/[email protected] file=路径 tables=(tb1)    //tables=(tb1)可有可无,方便导出指定表 导入:imp username/[email protected] file=路径 tables=(tb1)  full=y 在用plsql导出dmp的时候,没有数据的表显示没有导出成功 解决 1 查询一下当前用户下的所有空表 select table_name from user_tables where NUM_ROWS=

ORACLE EXP不能导出空表的原因分析及解决方法

一.不能导出空表的原因 1.Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出. 2.设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment. 在sqlplus中,执行如下命令: SQL>alter system set deferred_segment_creation=false; 查看: SQL>show parameter deferred_segment_creat

Oracle 导出空表的新方法(彻底解决)

背景 使用Exp命令在oracle 11g 以后不导出空表(rowcount=0),是最近在工作中遇到一个很坑的问题,甚至已经被坑了不止一次,所以这次痛定思痛,准备把这个问题彻底解决.之所以叫新方法,那一定有老方法了,这个方法是一位博友很早就提出了,以下是原文,其实也说明了问题的原因 Oracle11g使用exp导出空表(作者:程序员的那些) 问题根本原因:“Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出” 问题次要原因: 在开发维护期