Oracle11g空表导出设置

Posted 环保未来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle11g空表导出设置相关的知识,希望对你有一定的参考价值。

  

alter system set deferred_segment_creation=false;
select ‘alter table ‘||table_name||‘ allocate extent;‘ from user_tables where segment_created=‘NO‘

 

处理Oracle导出dmp文件无法处理空表,以及少表的情况
方法1、批量处理空表

步骤1、先分析表
        生成分析语句
        --select ‘analyze table ‘||table_name||‘ compute statistics;‘ from user_tables;

步骤2、将分析语句拿出来执行
        类似以下语句
        analyze table table_name compute statistics;

步骤3、处理空表
        生成处理语句
        --select ‘alter table ‘||table_name||‘ allocate extent;‘ from user_tables where num_rows=0;
步骤4、执行处理语句
        类似以下语句
        alter table table_name allocate extent;
步骤5、查询所有空表
        --select table_name from user_tables where NUM_ROWS=0;

 

方法2、设置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;
系统已更改。
SQL> show parameter deferred_segment_creation 

NAME                                 TYPE        VALUE 

------------------------------------ ----------- ------------------------------ 

deferred_segment_creation            boolean     FALSE

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

考虑到有的库中表较多(例如我接触到的某一个库有7000+张表手动分析每一张表起来较为繁琐,后期将发布一个java脚本用于自动分析表(本文中两种方法为参考其他博主资料)

以上是关于Oracle11g空表导出设置的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 11g导出空表少表的解决办法

Oracle 11g导出空表少表的解决办法

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

oracle 11g使用exp导出空表问题解决办法

oracle 11g不能导出空表的解决方法

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