`
一笑_奈何
  • 浏览: 68823 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

oracle11 导出空表

阅读更多
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 AQ$_AQ$_MEM_MC_H allocate extent;
alter table AQ$_AQ$_MEM_MC_G allocate extent;
alter table AQ$_AQ$_MEM_MC_I allocate extent;
alter table AQ$_AQ_PROP_TABLE_T allocate extent;
alter table AQ$_AQ_PROP_TABLE_H allocate extent;
alter table AQ$_AQ_PROP_TABLE_G allocate extent;
alter table AQ$_AQ_PROP_TABLE_I allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_T allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_H allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_G allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_I allocate extent;
'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
-----------------------------------------------------------
alter table AQ$_SYS$SERVICE_METRICS_TAB_T allocate extent;
alter table AQ$_SYS$SERVICE_METRICS_TAB_H allocate extent;
alter table AQ$_SYS$SERVICE_METRICS_TAB_G allocate extent;
alter table AQ$_SYS$SERVICE_METRICS_TAB_I allocate extent;
然后再执行
exp 用户名/密码@数据库名 file=/home/oracle/exp.dmp log=/home/oracle/exp_smsrun.log
  成功!
分享到:
评论

相关推荐

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

    ### 解决Oracle导出DMP文件空表导不出问题 #### 背景与问题描述 在使用Oracle数据库的过程中,可能会遇到一个常见的问题:当尝试使用工具如PL/SQL Developer导出包含空表的DMP文件时,这些空表无法被正确地导出。...

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

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

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

    Oracle 11g 导出空表解决方案 Oracle 11g 是一个功能强大且复杂的关系数据库管理系统,它提供了多种方式来导出数据库中的数据。然而,在使用 exp 命令导出 Oracle 11g 数据库时,空表会出现错误,这是因为 Oracle ...

    oracle11G-解决空表导出的问题

    通过以上步骤,你应该能够在Oracle 11g中成功地导出空表。在实际操作中,记得根据自己的具体环境调整参数,确保数据导出的准确性和完整性。对于大型数据库,推荐使用expdp,因为它更高效,且支持并行处理和更多高级...

    数据库oracle11g导出 空表

    Oracle 11g导出空表、少表的解决办法  ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间。 解决方法:  1)insert一行,再rollback就产生segment了  该方法是在在空表中插入数据,再删除,则...

    Oracle导出空表解决办法

    ### Oracle导出空表解决办法 #### 背景与问题描述 在Oracle数据库管理过程中,经常遇到的一个问题是无法导出空表。这种情况通常发生在使用`expdp`或`exp`命令进行数据导出时,如果表为空,则可能会遇到无法导出的...

    oracle11g导出空表、少表的解决方案

    Oracle 11g 导出空表、少表的解决方案 在 Oracle 11g 中,有一个新特性:当表无数据时,不分配 segment,以节省空间。这使得在通过 exp 导出时,无法导出没有分配 segment 的表。解决这个问题有两种情况: 情况一...

    Oracle11g使用exp导出空表

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

    Oracle11g使用exp导出空表方法

    总之,尽管Oracle11g默认不导出空表,但通过自定义脚本或使用“FULL”选项,我们可以轻松地将空表包含在导出过程中。在进行此类操作时,理解数据库结构、权限以及导出/导入过程的细节至关重要,以确保数据的完整性和...

    解决Oracle 11G空表数据不能导出[程序/源码]

    在Oracle数据库管理中,有时会遇到一个问题,即尝试导出空表的数据时,发现这些数据无法正常导出。这个问题在Oracle 11G版本中尤为突出,可能的原因多种多样,包括但不限于导出工具的限制、数据库设置问题或者SQL*...

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

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

    解决oracle10以上版本导出空表失败的问题

    在Oracle 11g及以上版本中,用户可能会遇到在尝试导出空表时失败的问题,主要表现为出现"EXP-00011: table 不存在"的错误信息。这个问题是由于Oracle的一种优化策略,即在11g版本以后,默认情况下,新建的表不会立即...

    Oracle 11g R2 执行export导出时 空表无法导出原因及解决方法

    把查询结果导出,执行导出的语句,强行修改 segment 值,然后再导出即可导出空表。 总结 在 Oracle 11g R2 版本中,可能会出现空表无法导出的问题,这是由于deferred_segment_creation 参数的原因。解决这个问题...

    解决oracle11g不能导出空表的问题

    文档有为什么oracle 11g不能导出空白,导出空表的详细操作方法(很简便哦)

    设置导出时导出空表.txt

    ### 设置导出时导出空表 - Oracle 相关知识点详解 #### 一、Oracle数据库导出空表的背景及需求分析 在Oracle数据库管理与维护过程中,经常会遇到需要备份或者迁移数据的情况。通常,这种操作是通过Oracle的导入...

    Oracle不能导出空表问题解决办法

    数据库导出时候因为版本问题,导出空表时候会报错,这里有解决办法。

    oracle空白表导出的配置操作

    oracle空白表导出的配置操作说明。根据说明进行操作。

    java导出oracle数据(单表).pdf

    Java 导出 Oracle 数据(单表) Java 是一种广泛使用的编程语言,Oracle 是一种常用的关系数据库管理系统。在实际应用中,经常需要将 Oracle 数据库中的数据导出到其他文件中,以便进行数据分析、备份或迁移等操作...

    java导出oracle数据(单表)

    Java 导出 Oracle 数据(单表) 在本资源中,我们将讨论如何使用 Java 语言导出 Oracle 数据库中的单表数据。该资源提供了一个完整的示例代码,展示了如何使用 Java 语言连接 Oracle 数据库,执行导出操作,并处理...

    导出oracle空库方案

    将oracle用户导出一份空库sql语句

Global site tag (gtag.js) - Google Analytics