11G中有个新特性,当表无数据时,不分配segment,以节省空间
解决方法:
1、insert一行,再rollback就产生segment了。
该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。
2、设置deferred_segment_creation 参数
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

该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。
需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。
搞了我好久,最后查到这个方法。
先查询一下当前用户下的所有空表
select table_name from user_tables where NUM_ROWS=0;
用以下这句查找空表
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
把查询结果导出,执行导出的语句
'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
-----------------------------------------------------------
alter table MATERIALS allocate extent;
alter table MEDIASERVERCONFIG allocate extent;
alter table MESSAGEHIDE allocate extent;
alter table NOTANDUMS allocate extent;
alter table NOTESERVERTIME allocate extent;
alter table ORGANIZEEXAM_DEGREE allocate extent;
alter table ORGANIZEEXAM_DEPARTMENT allocate extent;
alter table ORGANIZEEXAM_POST allocate extent;
alter table ORGANIZEEXAM_POSTGRADE allocate extent;
alter table ORGANIZEEXAM_REGION allocate extent;
alter table PLANS allocate extent;

'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
-----------------------------------------------------------
alter table POSTDATE allocate extent;
alter table POSTIMG allocate extent;
alter table POSTTITLE allocate extent;
alter table POSTTITLECATE allocate extent;
alter table POSTTITLEGRADE allocate extent;
alter table POSTTITLESUSERS allocate extent;
alter table PREPARATION_LIST allocate extent;
alter table PUBLIC_DEP allocate extent;
alter table PUBLIC_USERGROUP allocate extent;
alter table REPLY allocate extent;
alter table REPORTPARAMETER allocate extent;

'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
-----------------------------------------------------------
alter table RESASSIGN_USERGROUP allocate extent;
alter table RESULTMAP allocate extent;
alter table SC_USCP allocate extent;
alter table STUDYTEST allocate extent;
alter table SUBCOURSEWARE allocate extent;
alter table SUBJECTINFO allocate extent;
alter table SUBJECTINFOCATE allocate extent;
alter table SYSTEMFAQMANAGES allocate extent;
alter table TEMPLETOFIMPORTS allocate extent;
alter table TESTRESULT allocate extent;
alter table TEST_CONN allocate extent;
将上面的执行结果(所有的alter语句)在要导出的数据库中执行一下,然后在执行导出语句,这样的话空表就会导出了;
exp username/passwd@SID file=/opt/exp.dmp log=/opt/exp.log
导出成功!
导入方法,加buffer(缓冲)以加速导入进度:
imp username/passwd@SID file=/opt/exp.dmp log=/opt/exp.log buffer=2048000 full=y

参考文章:

http://wanwentao.blog.51cto.com/2406488/545154/

Oracle 11G无法导出空表的解决办法的更多相关文章

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

    在oracle 11g r2中,发现传统的exp居然不能导出空的表,然后查询一下,  发现需要如下的步骤去搞,笔记之.    oracle 11g 新增了一个参数:deferred_segment_c ...

  2. [转载]oracle 11g不能导出空表的多种解决方法

    原文地址:11g不能导出空表的多种解决方法">oracle 11g不能导出空表的多种解决方法作者:Anlin_Yang ORACLE 11g 用exp命令导出库文件备份时,发现只能导出 ...

  3. 解决 Oracle 11g 不能导出空表的问题

    --解决 Oracle 11g 不能导出空表的问题 --执行下面语句,查询数据库中的空表,同时产生分配空间.把生成的结果复制出来并执行. select 'alter table '||table_na ...

  4. ORACLE 11G EXP导出空表方法

    EXP在导出11G的库的时候,与过去10G,9I的版本有很大的差别. 就是没有数据的表是不会分配空间的. 从Oracle 11.2.0.1版本开始,Oracle又提供了一种新的空间分配方法: Crea ...

  5. oracle导不出空表的解决办法

    1.先进行表分析(一定要执行此步,否则查询空表可能不准确) select 'analyze table '||table_name||' compute statistics;' from user_ ...

  6. oracle exp 无法导出空表

    oracle exp 无法导出空表   select 'alter table '|| a.table_name ||' allocate extent;' from user_tables a wh ...

  7. oracle 11g设置打开空表extent储存块

    sql>alter system set deferred_segment_creation=false; sql>show parameter deferred_segment_crea ...

  8. Oracle 数据库 Only 导出空表的方法

    1. 之前因为oracle11.2.0.1 的bug(deferred_segment_creation) 引起无法将空表导出. 有时给同事解释上半个小时他们也不知道 如何处理 或者是 他们不会用ex ...

  9. Oracle 数据库 导入导出空表解决办法!

    expdp导出:(打开CMD) 先创建(任意盘符):\oracle_data 文件夹 1.sqlplus / as sysdba;2.create or replace directory d_nam ...

随机推荐

  1. unity, 慎用DontDestroyOnLoad

    如果想让一个节点切换场景时不销毁,可以为它添加如下脚本: using UnityEngine;using System.Collections; public class dontDestroyOnL ...

  2. zendstdio的智能提示功能

    在项目的include的那个地方邮寄,在addsource file  然后指向TP类库的文件夹,刷新项目即可有智能提示

  3. Spring 注解 @Scheduled(cron = "0 0/10 * * * ? ") 任务调度动态改变时间

    不需要重启应用就可以动态的改变Cron表达式的值 import java.util.Date; import java.util.concurrent.Executor; import java.ut ...

  4. JAVA Hibersap 框架调用 SAP

    In this example we will create a simple Maven project which uses Hibersap to call a function in SAP ...

  5. IPBX和话机对接

    某厂家的话机和IPBX进行对接问题: 1.      该话机作为主叫方,呼叫能够正常建立 2.      该话机作为被叫方.呼叫无法建立,IPBX发送INVITE消息给该话机,该话机回复400 具体消 ...

  6. ListView中pointToPosition()方法使用具体演示样例

    MainActivity例如以下: package cc.testpointtoposition; import java.util.ArrayList; import java.util.HashM ...

  7. webpack 3.x plugins

    uglifyjs-webpack-plugin 压缩代码,webpack自带 const uglify = require('uglifyjs-webpack-plugin'); plugins:[ ...

  8. MVVMLight-Mensenger 学习笔记

    MVVMLight-Mensenger  最近一直在使用WPF,配合美工很容易能搭配出效果不错的UI来,开发效率也明显加快 自己也是最近才开始使用Mvvmlight,通过view和viewmodel分 ...

  9. Ubuntu下创建JerBrains系列软件的快捷方式

    以pycharm为例: 终端输入:sudo gedit /usr/share/applications/Pycharm.desktop模板: [Desktop Entry]Type=Applicati ...

  10. chrono

    时间段的表示 tmplate<class Rep,class Period=ratio<1>> class duration; duration类被用来表示时间段的计量器,Re ...