zoukankan      html  css  js  c++  java
  • oracle 11g用exp无法导出空表的解决方案

    Oacle 11g中有个新特性,当表无数据时,不分配segment,以节省空间,当我们用exp导出空表时,无法导出。

    解决方法是两个方面,一是处理现有的空表,让其能导出;二是设置参数,让后续的新的空表也可以导出

     -----------------------------------处理一           -----------------------------------------------------------------------------------

    查询所有空表并分配segment,使用以下语句查询生成修改空表设置的SQL:

    select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

    将输出的SQL复制到SQL执行窗口,并执行。

     -----------------------------------处理二           -----------------------------------------------------------------------------------

    设置系统参数,让后续新表自动分配segment,查询系统参数,该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment.

    查询语句:show parameter deferred_segment_creation;

    将这个参数修改为FALSE,修改语句为:

    alter system set deferred_segment_creation=false;

    再次查询确认参数是否修改成功:

    show parameter deferred_segment_creation;

    可见已经修改为FALSE了,如图:

    这样再使用exp导出,就可以正常导出空表了,如图所示,显示为0行的表也能导出了。

     

  • 相关阅读:
    HDU 1009 FatMouse' Trade
    HDU 2602 (简单的01背包) Bone Collector
    LA 3902 Network
    HDU 4513 吉哥系列故事——完美队形II
    LA 4794 Sharing Chocolate
    POJ (Manacher) Palindrome
    HDU 3294 (Manacher) Girls' research
    HDU 3068 (Manacher) 最长回文
    Tyvj 1085 派对
    Tyvj 1030 乳草的入侵
  • 原文地址:https://www.cnblogs.com/adamgq/p/9765966.html
Copyright © 2011-2022 走看看