千家信息网

解决exp无法导出问题

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,用exp无法导出空表解决方法/用exp导出数据时表丢失原因使用oracle 11g导出数据发现有的表丢失原因是:11GR2中有个新特性,当表无数据时,不分配segment,以节省空间,可是在用EXPO
千家信息网最后更新 2026年11月03日解决exp无法导出问题

用exp无法导出空表解决方法/用exp导出数据时表丢失原因



使用oracle 11g导出数据发现有的表丢失原因是:

11GR2中有个新特性,当表无数据时,不分配segment,以节省空间,可是在用EXPORT导出时,空表也不能导出,这就导致迁移时候丢失了一些表,存储过程也失效了

  解决方法:


一、 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 SEGMENT_CREATED='NO';


  把SQL查询的结果导出,然后执行导出的语句,强行为表分配空间修改segment值,然后再导出即可导出空表了。


  以下是脚本,将未分配空间的表的sql直接输出到result.txt 文件 (直接执行result.txt中的sql即可为未分配空间的表分配空间)

set linesize 120;set pagesize 2000;spool /home/oracle/result.txt;SELECT 'ALTER TABLE '||TABLE_NAME||' ALLOCATE EXTENT;' SQLSTR FROM USER_TABLES WHERE SEGMENT_CREATED='NO';spool off;exit;



--会出现类型这样的格式

ALTER TABLE JW ALLOCATE EXTENT;


分配 空间 数据 方法 作用 原因 参数 语句 一行 文件 时候 是在 格式 特性 用以 类型 结果 脚本 过程 还是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网高科技 互联网科技卖菜 金融科技创新监管互联网金融 互联网科技上市公司 易通互联网络科技有限公司 广州凡科互联网科技 撒么互联网科技公司 一五八零互联网科技 成都玖崟互联网科技有限公司乐商圈怎么样 互联网之后的科技是什么 字节跳动和互联网科技 科技互联网的核心竞争力 互联网科技股为什么大涨 昆明中奇联合互联网科技 美国五大互联网科技公司市值多少 互联网的科技体现在哪里 现代互联网科技公司 互联网科技大佬云集 宁波允成互联网科技有限公司 银川新华互联网科技学校招聘 手冲咖啡和咖啡机区别 艾特科技互联网 佰商互联网科技有限公司 互联网之后的科技是什么 茂名市互联网科技产业园 互联网科技项目计划书材料类 消费医药和互联网科技 深圳市优智互联网科技有限公司 半导体行业属于互联网高科技类吗 35岁以上互联网科技行业
0