Oracle 11gR2 用exp无法导出空表解决方法-阿里云开发者社区

开发者社区> prudentwoo> 正文

Oracle 11gR2 用exp无法导出空表解决方法

简介: Oracle 11gR2 用exp无法导出空表解决方法        在11gR2中有个新特性,当表无数据时,不分配segment以节省空间,Oracle 当然在执行export导出时,空表则无法导出,但是还是有解决办法的: 解决方法:一、insert一行,再rollback就产生segment了。
+关注继续查看

Oracle 11gR2 exp无法导出空表解决方法


       
11gR2中有个新特性,当表无数据时,不分配segment以节省空间,Oracle 当然在执行export导出时,空表则无法导出,但是还是有解决办法的:


解决方法:
一、insert一行,再rollback就产生segment了。
该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。

二、
设置deferred_segment_creation参数 

该参数值默认是TRUE,当改为FALSE时,无无是空表还是非空表,都分配segment。修改SQL语句:

SQL> alter system set deferred_segment_creation=false scope=both;

需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。

三、
用以下SQL语句查找空表

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

把查询结果导出,执行导出的语句,强行修改segment值,然后再导出即可导出空表,
注意:数据库插入数据前,修改
11g_R2参数可以导出空表

查找空表并生成更新表语句:

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


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Oracle 11g R2版本使用exp命令导出表不全的解决方案
建议使用 expdp和 impdp 替代  exp和imp 命令!
617 0
oracle面试题[关于case when的用法]
表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列 declare  v_sal number:=2000;  v_tax number;  begin  case    when v_sal   v_tax:=v_sal*0.
1062 0
oracle中的 exists 和 in 简单用法介绍
document.body.oncopy = function () { setTimeout( function () { var text = clipboardData.
463 0
Windows DOS窗体下Oracle 数据库的导入导出命令
oracle 用户创建 数据库的导入导出imp/exp 可以在SQLPLUS.EXE或者DOS(命令行)中执行 执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径, 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。 创建用户 给用户增加导入数据权限的操作
2039 0
+关注
prudentwoo
10g/11g OCP 11g OCM,ITPUB和CSDN专家及专家讲师;有着多年数据库从业经验,资深Oracle数据库专家,现就职于北京海量数据技术股份有限公司担任高级dba职务,为央视,银行,电信等各行业及企业提供过技术支持服务
268
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载