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

Oracle11g 新增參数deferred_segment_creation
 ,建库的时候默认值为true,意思是延时载入,当表中不存在数据的时候,不为这个表创建空间,当你导出的时候会发现非常多表不存在

使用show parameter deferred deferred_segment_creation; 命令能够查看deferred_segment_creation的值。假设想让空表导出

方法一:像库表中插入值

方法二:1、运行sql改动deferred_segment_creation的值
:alter system set deferred_segment_creation=false;

2、运行sql:    select ‘alter table ‘||table_name||‘ allocate extent;‘ from user_tables where num_rows=0;

用pl/sql将结果 ——右键  —— 拷贝到Excel...   将结果拷贝到sql窗体中执行  然后就能够导出了

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXlmbXlmbXlmbXlm/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

时间: 2024-10-18 13:34:03

解决Oracle11g空表无法导出的问题的相关文章

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

轻松解决oracle11g 空表不能exp导出的问题 [引用 2012-9-22 18:06:36]  字号:大 中 小 oracle11g的新特性,数据条数是0时不分配segment,所以就不能被导出.共两种解决方法,推荐使用第二种(最简单).一.修改数据库参数alter system set deferred_segment_creation=false; 修改后,也不会导出空表,只有新建的空表才会导出,不适用,只有新建数据库时,修改此参数才比较有用.二.sql语句1.先查询一下哪些表是空的

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

[转]轻松解决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

Oracle 11G在用EXP 导出时,空表不能导出解决[转]

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

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

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

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

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

Oracle11g新特性导致空表不能导出问题

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