轻松解决oracle11g 空表不能exp导出的问题

轻松解决oracle11g
空表不能exp导出的问题
 [引用 2012-9-22 18:06:36]

 字号:大 中 小

oracle11g的新特性,数据条数是0时不分配segment,所以就不能被导出。

共两种解决方法,推荐使用第二种(最简单)。
一、修改数据库参数
alter
system set
deferred_segment_creation=false; 
修改后,也不会导出空表,只有新建的空表才会导出,不适用,只有新建数据库时,修改此参数才比较有用。
二、sql语句
1、先查询一下哪些表是空的:

select table_name from user_tables where
NUM_ROWS=0; 
2、生成修改语句,并执行
select ‘alter table ‘||table_name||‘
allocate extent;‘ from user_tables where
num_rows=0 
执行后,再导出,就OK了

时间: 2024-08-02 20:31:47

轻松解决oracle11g 空表不能exp导出的问题的相关文章

[转]轻松解决oracle11g 空表不能exp导出的问题

转自:http://www.2cto.com/database/201109/105931.html oracle11g的新特性,数据条数是0时不分配segment,所以就不能被导出. 解决方法: 1插入一条数据(或者再删除),浪费时间,有时几百张表会累死的.2创建数据库之前使用代码: Sql代码 alter system set  deferred_segment_creation=false;  调整再建表这两种方都不好下面是终极方法: 先查询一下哪些表是空的: Sql代码 select t

轻松解决oracle11g 空表不能exp导出的问题。

解决方法: 1插入一条数据(或者再删除),浪费时间,有时几百张表会累死的.2创建数据库之前使用代码: Sql代码 alter system set  deferred_segment_creation=false;  调整再建表这两种方都不好下面是终极方法: 先查询一下哪些表是空的: Sql代码 select table_name from user_tables where NUM_ROWS=0;   下面我们通过select 来生成修改语句:Sql代码 select 'alter table

解决oracle11g 空表不能exp导出的问题

在使用exp备份数据库,然后使用imp导入的时候出现了好多表或者视图不存在的错误信息. 究其原因,是11G中增加了一个新的特性:数据条数是0时不分配segment,所以就不能被导出. 解决思路:就是向空表中增加一行数据.但是如果有很多空表,一行一行的导入就好出现问题.下面是终极解决方案: 在命令行执行: select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 将查询出来的语句

解决Oracle11g空表无法导出的问题

Oracle11g 新增參数deferred_segment_creation  ,建库的时候默认值为true,意思是延时载入,当表中不存在数据的时候,不为这个表创建空间,当你导出的时候会发现非常多表不存在 使用show parameter deferred deferred_segment_creation; 命令能够查看deferred_segment_creation的值.假设想让空表导出 方法一:像库表中插入值 方法二:1.运行sql改动deferred_segment_creation

解决Oracle 11g在用EXP导出时,空表不能导出

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

如何解决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=

【原创】关于oracle11G空表无法导出问题的解决方法

在网上搜索了相关资料后,结合自己的实际情况,总结了一下解决方法,具体如下: 1.先批量分析统计各表总记录数: --批量分析统计表记录总数 begin for obj in (select 'analyze table '||table_name|| ' compute statistics ' sqlstr from user_tables) loop --in里面的select无分号 execute immediate obj.sqlstr; end loop; end; 2.再批量分配ext

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

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

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

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