`

EXP-00011:oracle11g 空表不能exp导出的问题

 
阅读更多

环境:Oracle11gR2+linux RH 5.5

最近验证正式系统的问题,特意dmp一份正式库的数据恢复到临时库,执行EXP导出时,部分表提示 EXP-00011:表不存在错误,但是查询user_all_tables视图,此表确实是存在的,并且执行select语句也能成功,不过表为空表,查看权限等也没有问题。后来通过查询资料,发现问题是由Deferred Segment Creation参数引起的。

Deferred Segment Creation,延迟段创建,Oracle11gR2新增参数, 具体用处是当新创建一个可能会有Segment的对象时,如果这个对象中还没有任何记录需要消耗一个Extent,那么将不会在创建对象时自动创建Segment,这样做的好处是在创建对象时大大提高了速度。但是这么一来,因为对象没有Segment,执行EXP导出时,就会报EXP-00011错误。

 

解决办法:

一、      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很好用。

 

 

========================================================================

 

 

分享到:
评论

相关推荐

    oracle 11g R2 exp无法导出空表的解决方法

    Oracle 11g R2 中新增的特性,使得 exp 无法导出空表,这是因为 11g R2 中有一个新特性,即当表无数据时,不分配 segment,以节省空间。这种情况下,使用 exp 命令无法导出空表。下面将介绍四种解决方法: 解决...

    IMP-00009:异常结束导出文件解决方案.docx

    在Oracle数据库管理过程中,经常会遇到数据迁移的需求,其中一个常见的操作就是使用`exp`命令将表数据导出为一个文件,再使用`imp`命令将这个文件中的数据导入到另一个数据库或用户下。然而,在实际操作中可能会遇到...

    oracle11gR2使用exp导出命令时报EXP-00011错误的解决方法

    Oracle 11gR2 的 EXP 导出命令在某些情况下可能会遇到 EXP-00011 错误,提示“表不存在”。这个问题通常与 Oracle 11gR2 引入的一个新特性—— Deferred Segment Creation(延迟段创建)有关。这个特性旨在提升...

    EXP-00091 Exporting questionable statistics

    标题“EXP-00091 Exporting questionable statistics”似乎是指在数据库管理或者数据导出过程中遇到的一个特定问题,可能是关于Oracle数据库中的一个错误代码或警告。这个问题涉及到数据的统计信息,这在数据库管理...

    oracle11G-解决空表导出的问题

    针对空表导出的问题,本教程将深入探讨如何在Oracle 11g中正确执行这一操作,并提供具体的操作步骤。 1. **理解Oracle数据导出工具**: - **exp**: Oracle的传统数据导出工具,基于PL/SQL,适用于小型数据库和简单...

    如何处理错误ORA-29275:部分多字节字符

    1. **表中的VARCHAR2字段存储了多字节字符**:如果某个字段的数据类型为VARCHAR2,并且其长度限制不足以完全容纳某些多字节字符(例如汉字),则可能导致数据截断。当尝试查询这些被截断的多字节字符时,Oracle...

    oracle11g不能导出空表的解决方式

    然而,在使用 exp 命令导出 Oracle 11g 数据库时,空表会出现错误,这是因为 Oracle 11g 默认对空表不分配 segment。为了解决这个问题,我们可以使用以下几种方法。 方法 1: 修改 deferred_segment_creation 参数 ...

    Oracle 导入错误IMP-00010:不是有效的导出文件,头部验证失败

    在Oracle数据库管理中,"IMP-00010:不是有效的导出文件,头部验证失败" 是一个常见的导入错误,通常发生在尝试使用`expdp`(数据泵导出)或`impdp`(数据泵导入)工具进行数据迁移或备份恢复时。这个错误意味着系统...

    Oracle11g使用exp导出空表方法

    然而,Oracle11g在设计时默认对空表不分配segment,因此在使用exp导出数据库时,空表不会被包含在导出文件中。这对于完整备份和恢复所有表的场景来说,可能是一个问题。下面,我们将详细讨论如何处理这个问题,以及...

    oracle11g-exp文件

    Oracle 11g是甲骨文公司发布的一款关系数据库管理系统,其强大而高效的数据处理能力在业界享有盛誉。在给定的“oracle11g-exp”文件中,重点涉及了Oracle数据库的数据导出和导入工具,即EXP(Export)和IMP(Import...

    Oracle数据库错误消息.pdf

    12. EXP-00011:不存在的表。确认输入的表格名称是否正确。 13. EXP-00012:无效的导出模式。检查并使用有效的导出模式。 14. EXP-00013:输入无效响应。根据提示输入正确的响应。 15. EXP-00014:行错误。查阅...

    oracle EXP 遇到的问题

    标题“Oracle EXP 遇到的问题”涉及到的是在使用Oracle数据库导出工具EXP时遇到的挑战。Oracle EXP,全称Export,是Oracle提供的一种数据导出工具,它允许用户将数据库对象(如表、索引、存储过程等)及其数据导出到...

    Oracle11g使用exp导出空表

    在使用Oracle11g数据库时,用户可能会遇到在使用exp导出工具导出数据时无法导出空表的问题。空表是指那些没有数据行的表,这在Oracle数据库中比较常见。Oracle11g为提高性能和节省空间,默认情况下对空表不分配...

    Oracle11G导入导出(imp和exp)少表解决方法

    然而,在使用 Oracle 11G 时,用户可能会遇到一些问题,例如无法导出空表的问题。在本文中,我们将讨论如何解决这个问题,并提供了多种方法来导入和导出数据。 一、解决无法导出空表的问题 在 Oracle 11G 中,默认...

    oracle12c ORA-01017: 用户名/口令无效; 登录被拒绝 解决方案

    oracle12c程序连接时异常: ORA-01017: 用户名/口令无效; 登录被拒绝 的解决方案。

    解决Oracle导出dmp文件空表导不出问题.docx

    因此,还需要采取额外步骤来解决现有的空表问题。 #### 解决方案二:为现有空表分配存储空间 ##### 步骤一:识别空表 通过以下SQL语句可以找出当前用户下所有没有数据的空表: ```sql SELECT table_name FROM ...

    oracle数据库

    EXP-00011 string.string不存在 **原因**:指定的表不存在于数据库中。 **操作指南**: - **确认表名正确**:确保使用正确的表名进行导出。 #### 13. EXP-00012 字符串不是一个有效的导出模式 **原因**:指定了...

    oracle11g的BIN目录exp.exe下载

    综上所述,Oracle 11g的BIN目录中的exp.exe是数据库管理的重要工具,通过它和其他相关工具的配合,可以实现高效的数据导出、导入,从而在数据迁移、备份恢复等场景中发挥关键作用。理解并掌握这些工具的使用,对于...

Global site tag (gtag.js) - Google Analytics