1、Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。

2、设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment。

在sqlplus中,执行如下命令:

SQL>alter system set deferred_segment_creation=false;

查看:
   SQL>show parameter deferred_segment_creation;

该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用。

3、可以使用手工为空表分配Extent的方式,来解决导出之前建立的空表的问题。说明如下:

3.1 使用ALLOCATE EXTENT的说明

使用ALLOCATE EXTENT可以为数据库对象分配Extent。其语法如下:

-----------
   ALLOCATE EXTENT { SIZE integer [K | M] | DATAFILE 'filename' | INSTANCE integer }
   -----------

可以针对数据表、索引、物化视图等手工分配Extent。

ALLOCATE EXTENT使用样例:
 
    ALLOCATE EXTENT 
    ALLOCATE EXTENT(SIZE integer [K | M]) 
    ALLOCATE EXTENT(DATAFILE 'filename') 
    ALLOCATE EXTENT(INSTANCE integer) 
    ALLOCATE EXTENT(SIZE integer [K | M]   DATAFILE 'filename') 
    ALLOCATE EXTENT(SIZE integer [K | M]   INSTANCE integer)

针对数据表操作的完整语法如下:

-----------
    ALTER TABLE [schema.]table_name ALLOCATE EXTENT [({ SIZE integer [K | M] | DATAFILE 'filename' | INSTANCE integer})]
   -----------

故,需要构建如下样子简单的SQL命令:

-----------
   alter table aTabelName allocate extent
   -----------

3.2 构建对空表分配空间的SQL命令,

查询当前用户下的所有空表(一个用户最好对应一个默认表空间)。命令如下:

-----------
   SQL>select table_name from user_tables where NUM_ROWS=0;
   -----------

根据上述查询,可以构建针对空表分配空间的命令语句,如下:

-----------
   SQL>Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
   -----------

批量输出上述生成的SQL语句,建立C:\createsql.sql,其内容如下:

-----------
   set heading off;
   set echo off;
   set feedback off;
   set termout on;
   spool C:\allocate.sql;
   Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
   spool off;
   -----------

执行C:\createsql.sql,命令如下:
   -----------
   SQL>@ C:\createsql.sql;
   -----------

执行完毕后,得到C:\allocate.sql文件。

打开该文件会看到,已经得到对所有空表分配空间的命令SQL语句。

3.4 执行SQL命令,对空表分配空间:

执行C:\allocate.sql,命令如下:
   -----------
   SQL>@ C:\allocate.sql;
   -----------
  
   执行完毕,表已更改。

3.4 此时执行exp命令,即可把包括空表在内的所有表,正常导出。

另外:Oracle11g中,对密码是大小写敏感的,即密码中的字母是区分大小写的。

在Oracle10g中及以前,密码中的字母大小写无所谓。

设置oracle11g空表exp导出的更多相关文章

  1. 解决Oracle11g空表无法导出的问题

    Oracle11g 新增參数deferred_segment_creation  ,建库的时候默认值为true,意思是延时载入,当表中不存在数据的时候,不为这个表创建空间,当你导出的时候会发现非常多表 ...

  2. oracle11g空表不能导出记录

    select 'alter table '||table_name||' allocate extent(size 64k);' from tabs t where not exists (selec ...

  3. 轻松解决oracle11g 空表不能exp导出的问题

    轻松解决oracle11g 空表不能exp导出的问题 [引用 2012-9-22 18:06:36]     字号:大 中 小 oracle11g的新特性,数据条数是0时不分配segment,所以就不 ...

  4. Oracle11g空表导出方法

    今天凌晨在客户现场进行一个Oracle11g的数据库迁移,习惯性的用了exp/imp,然后在新的数据库发现,空表根本没有exp出来,然后查资料,发现了如下信息:[ORACLE 11G在用EXPORT导 ...

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

    Oracle 11G在用EXP 导出时,空表不能导出解决 (转)(.http://wanwentao.blog.51cto.com/2406488/545154 11G中有个新特性,当表无数据时,不分 ...

  6. 解决Oracle 11g在用EXP导出时,空表不能导出

    实践结论可行,看"2.解决办法" 一.问题原因:     11G中有个新特性,当表无数据时,不分配segment,以节省空间     1.insert一行,再rollback就产生 ...

  7. 【转】解决Oracle 11g在用EXP导出时,空表不能导出

    一.问题原因: 11G中有个新特性,当表无数据时,不分配segment,以节省空间 .insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segme ...

  8. oracle 11g 空表也导出

    查询空表 并导出修改空表语句 select 'alter table '||table_name||' allocate extent;' from user_tables where num_row ...

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

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

随机推荐

  1. libpcap 主要函数及过程详解

    http://blog.chinaunix.net/uid-21556133-id-120228.html libpcap(Packet Capture Library),即数据包捕获函数库,是Uni ...

  2. HTMLImageElement类型的简便利用

    这个是我在复习书籍的时候看见的,当时一个同学想通过页面发送请求,但是数据量不是太大,所以用的get方式,但是页面用表单提交请求的话会让页面进行跳转,当时我在网上查了一点资料,发现基本上都是通过ajax ...

  3. postal.js使用

    requirejs.config({ //默认情况下模块所在目录为js/lib baseUrl: './', //当模块id前缀为app时,他便由js/app加载模块文件 //这里设置的路径是相对与b ...

  4. 【BZOJ】1013: [JSOI2008]球形空间产生器sphere

    [BZOJ]1013: [JSOI2008]球形空间产生器sphere 题意:给n+1个n维的点的坐标,要你求出一个到这n+1个点距离相等的点的坐标: 思路:高斯消元即第i个点和第i+1个点处理出一个 ...

  5. 开发设计模式(一)Command模式

    Command定义 将来自客户端的请求传入一个对象,无需了解这个请求激活的 动作或有关接受这个请求的处理细节. 这是一种两台机器之间通讯联系性质的模式,类似传统过程语 言的 CallBack功能. 优 ...

  6. cocos2dx3.4 保存json文件

    头文件: #include "json/document.h" #include "json/stringbuffer.h" #include "js ...

  7. Git的一些基本概念

    Git的一些基本概念 设置自己的用户名和邮箱git config –global user.name "Your Name"git config –global user.emai ...

  8. srvctl 命令

    SRVCTL命令可以控制RAC数据库中的instance,listener以及services.通常SRVCTL在ORACLE用户下执行.下面我们来介绍srvctl命令.1.通过SRVCTL命令来st ...

  9. python image模块

    Image 模块 Image 模块提供了同名的类用来表示PIL的图像.Image模块还提供了许多工厂(factory)函数,包块从文件加载图像的函数,以及创建新图像的函数.    例子  下面的脚本加 ...

  10. 练习--LINUX进程间通信之无名管道PIPE

    IBM上放的这个系统不错,刚好可以系统回温一下LINUX的系统知识. http://www.ibm.com/developerworks/cn/linux/l-ipc/part1/ 感觉年纪大了,前几 ...