码迷,mamicode.com
首页 > 数据库 > 详细

Oracle11g空表导出设置

时间:2020-07-01 20:14:12      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:param   产生   oracle   不能导出   sele   手动   11g   两种方法   发布   

  

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空表导出设置

标签:param   产生   oracle   不能导出   sele   手动   11g   两种方法   发布   

原文地址:https://www.cnblogs.com/joyanli/p/13221055.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!