zoukankan      html  css  js  c++  java
  • 轻松解决oracle11g 空表不能exp导出的问题

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

    一、      insert一行,再rollback就产生segment了。

      该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。

    二、      设置deferred_segment_creation参数

    该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。修改SQL语句:

    alter system set deferred_segment_creation=false scope=both;

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

    三、      用以下这句查找空表

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

      把查询结果导出,执行导出的语句,强行修改segment值,然后再导出即可导出空表,

    方法1在表很多的时候不实际,方法二最好用在数据库创建的时候,方法3很好用

  • 相关阅读:
    TCP 基础知识
    Spring Boot 实战 —— 日志框架 Log4j2 SLF4J 的学习
    MySQL 实战笔记
    Java 基础
    RPM 包的构建
    RPM 包的构建
    9. 桶排序
    8. 基数排序
    7. 计数排序
    6. 快速排序
  • 原文地址:https://www.cnblogs.com/cpprun/p/2660751.html
Copyright © 2011-2022 走看看