文档章节

解决oracle11g数据库中空表exp无法导出的问题

一页之秋
 一页之秋
发布于 2014/07/07 09:50
字数 527
阅读 1296
收藏 3

之前再做项目的时候下载了一个开源的程序,数据库在移植的时候通过exp/imp导入导出,结果程序在启动时报错,对比过后发现两个数据库表相差了十几个,再排查问题,发现少掉的十几个表全部是空表,查了一下oracle11g的特性,发现当数据条数是0时不分配segment,所以就不能被导出!我勒个擦!坑爹有木有!

但是总不能每个表插入一条数据再导出吧,作为一个程序猿总不能上手工课吧,于是继续查,找到了一个解决办法,特此记录,以儆效尤!

第一种解决办法:

在创建数据库之前,先将数据库segment属性进行修改,SQL语句如下:

alter system set  deferred_segment_creation=false;

含义如下:deferred_segment_creation,含义是段延迟创建,默认是true。如果这个参数设置为true,你新建了一个表T1,并且没有向其中插入数据,那么这个表不会立即分配extent,也就是不占数据空间,只有当你insert数据后才分配空间。这样可以节省少量的空间。设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment。需要注意的是,该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用,在修改后需要重新启动数据库参数才能生效

第二种解决办法:

先查一下哪些表是空的,然后使用ALLOCATE EXTENT为数据库对象分配Extent,SQL如下:

查询空表:select table_name from user_tables where NUM_ROWS=0; 

生成修改语句:select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 ;

执行生成修改语句的SQL后会生成一堆的ALTER的SQL语句,将生成的语句执行后,再进行exp数据导出,就可以导出所有数据了!


© 著作权归作者所有

共有 人打赏支持
一页之秋
粉丝 0
博文 2
码字总数 982
作品 0
石家庄
私信 提问
oracle11g导出数据库空表

项目中使用oracle11g的情况越来越常见,也经常会基于oracle11g数据库的数据迁移。缘于oracle11g的一个特性,默认情况下,oracle不会给空表分配表空间,对于这些空表,使用exp命令做导出的时候...

彭苏云
2014/03/26
0
0
Oracle数据库的备份与恢复

Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 导出/导入(Export/Import)   利用Export可将数据...

libao2235
06/26
0
0
(转)oracle11g 不能导出空表解决办法

今天升级的时候实施跟我说 他加了一张表 但是用oracle 的exp的时候 显示该表不存在。排查了下 原来是那张表没有数据。 oracle11g 有显示 不允许导出空表。于是便有了下面的资料,谷歌别人也遇...

渔樵耕读
2014/03/28
0
0
Oracle 11g 使用exp命令 导出空表

1、Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。 2、设置deferredsegmentcreation 参数为FALSE后,无论是空表还是非空表,都分配segment。 在sqlplus...

IT_小翼
2013/11/13
0
0
Oracle数据导入导出命令及参数介绍(Linux)

1.数据导出 EXP: 有三种主要的方式(完全、用户、表) 1、完全: EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:FULL.DMP FULL=Y 如果要执行完全导出,必须具有特殊的权限 2、用户模式: EXP SONI...

lyle_luo
09/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

正则表达式匹配不包含

^((?!xxx).)*$

安小乐
11分钟前
1
0
python Windows tkinter应用开发3 列出目录的所有文件

在本章中,我们将编写程序来执行此操作。 1)选择文件夹。 2)在UI的标签部分打印该文件夹中的所有文件名(带文件扩展名)。 首先,修改selectFile函数以打开文件夹。主文件如下: from tki...

python测试开发人工智能安全
13分钟前
1
0
使用Laya引擎开发微信小游戏(上)

  使用一个简单的游戏开发示例,由浅入深,介绍了如何用Laya引擎开发微信小游戏。      img      作者:马晓东,腾讯前端高级工程师。      微信小游戏的推出也快一年时间了,...

SEOwhywhy
18分钟前
1
0
react程序开发问题记录

1、webpack.config.dev.js文件的publicpath配置

teamlog
30分钟前
2
0
javascript 值转换为布尔值

任意javascript 的值都可以转换为布尔值。 特别是在 if() 等判断中使用的时候: 下面这些值会被转换为 false undefined , null , 0 , -0 , NaN , "" 空字符串 来自 JavaScript 权威指南 书籍...

之渊
33分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部