Oracle 11g用exp无法导出空表的处理方法

在PLSQL Dev中执行以下SQL查询:

select ‘alter table ‘||table_name||‘ allocate extent;‘ from user_tables where num_rows=0

然后将结果拷贝出来再执行后就可以导出Oracle11g中的空表了。

alter table T_ANALY_ITEM_ITEM allocate extent;
alter table T_ANALY_PROCE_INOUT_OBJ allocate extent;
alter table T_ANALY_PROCE_PROCE allocate extent;
alter table T_DATA_BUSI_TABLE allocate extent;
alter table T_EDU_MOOC_ACTION allocate extent;
alter table T_EDU_MOOC_ACTION_MEMBER allocate extent;
alter table T_EDU_MOOC_ACT_REF_COUR allocate extent;
alter table T_EDU_MOOC_COURSE_MEDIA allocate extent;
alter table T_EDU_MOOC_COURSE_ROAD allocate extent;
alter table T_EDU_MOOC_CREDENTIALS allocate extent;
alter table T_INTER_LOG allocate extent;
alter table T_PROC_BUSI_SERV allocate extent;
alter table T_QLDI_ADAPTER_CONF allocate extent;
alter table T_QLDI_ADAPTER_DEFI allocate extent;
alter table T_QLDI_CENTER allocate extent;
alter table T_QLDI_CONF_VAL allocate extent;
alter table T_QLDI_DEST_MAP allocate extent;
alter table T_QLDI_DEST_MAP_PROP allocate extent;
alter table T_QLDI_MESS_AUTH allocate extent;
alter table T_QLDI_MESS_DESTINATION allocate extent;
alter table T_QLDI_MESS_DETAIL allocate extent;
alter table T_QLDI_MESS_ROUTE allocate extent;
alter table T_QLDI_REQUEST allocate extent;
alter table T_QLDI_SYS_JNDI allocate extent;
alter table T_QLDI_TIMER allocate extent;
alter table T_QL_DATA_LOG allocate extent;
alter table T_SERVICE_LOG allocate extent;
alter table T_SERVICE_USER allocate extent;
alter table T_SERVICE_WEB_PWD allocate extent;
alter table T_SYS_APP_SSO allocate extent;
alter table T_SYS_AREA_HIS allocate extent;
alter table T_SYS_BUSI_CATE_REF allocate extent;
alter table T_SYS_FILE_TYPE allocate extent;
alter table T_SYS_RULE_DEF allocate extent;
alter table T_SYS_RULE_REF allocate extent;
alter table T_SYS_USER_ORG allocate extent;
alter table T_WEB_INFO_AUTH allocate extent;
alter table T_WEB_INFO_READER allocate extent;
alter table T_WEB_INFO_REF_INFO allocate extent;
时间: 2024-12-28 11:27:38

Oracle 11g用exp无法导出空表的处理方法的相关文章

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

Oracle 11gR2 用exp无法导出空表解决方法 在11gR2中有个新特性,当表无数据时,不分配segment以节省空间,Oracle 当然在执行export导出时,空表则无法导出,但是还是有解决办法的: 解决方法: 一.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 二.设置deferred_segment_creation参数 该参数值默认是TRUE,当改为FALSE时,无无是空表还是非空表,

Oracle 11G 笔记:无法导出空表的解决办法

最近在用ORACLE 11G .对数据导出导入的时候发现一个问题:oracle 不会对无数据的空表进行导出.查资料发现,原来这种情况只出现在Oracle 11g 中,处理办法如下: sqlcommand:  alter system set deferred_segment_creation=false; 意思是禁止推迟创建表的段,也就是表创建后不管有没有数据都要分配空间.该参数修改后对该时间点以前创建的表无用.所以还是要对以前的表分配空间. sql:  Select 'alter table

Oracle11g用exp无法导出空表的解决方法

方法1: 设置deferred_segment_creation参数 SQL> show parameter deferred_segment_creation NAME TYPE VALUE -------------------------- ----------- ---------- deferred_segment_creation boolean TRUE SQL> alter system set deferred_segment_creation=false; 系统已更改. S

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

四.  Oracle 10g以后增加了expdp和impdp工具,用此工具也可以导出空的表 oracleexpdp/impdp 用法详解 1)  创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建. createdirectory db_bak as 'd:\test\dump'; 2)  查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错) select * fromdba_directories; 3)  给s

oracle exp 无法导出空表

oracle exp 无法导出空表   select 'alter table '|| a.table_name ||' allocate extent;' from user_tables a where a.table_name not in (select segment_name from user_segments where segment_type = 'TABLE'); 执行查出的sql语句,再导出dmp,就能导出空表了. Oracle 11g无法导出空表的处理方法 在SQL窗口

Oracle 导出空表的新方法(彻底解决)

背景 使用Exp命令在oracle 11g 以后不导出空表(rowcount=0),是最近在工作中遇到一个很坑的问题,甚至已经被坑了不止一次,所以这次痛定思痛,准备把这个问题彻底解决.之所以叫新方法,那一定有老方法了,这个方法是一位博友很早就提出了,以下是原文,其实也说明了问题的原因 Oracle11g使用exp导出空表(作者:程序员的那些) 问题根本原因:“Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出” 问题次要原因: 在开发维护期

ORACLE EXP不能导出空表的原因分析及解决方法

一.不能导出空表的原因 1.Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出. 2.设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment. 在sqlplus中,执行如下命令: SQL>alter system set deferred_segment_creation=false; 查看: SQL>show parameter deferred_segment_creat

Oracle11G R2用exp无法导出空表解决方法

在11G R2中有个新特性,当表无数据时,不分配segment,以节省空间Oracle当然在执行export导出时,空表则无法导出,但是还是有解决办法的: 解决方法: 一.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 二.设置deferred_segment_creation参数 该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment.修改SQL语句: alter sy

oracle 11g不能导出空表的解决方法

在oracle 11g r2中,发现传统的exp居然不能导出空的表,然后查询一下, 发现需要如下的步骤去搞,笔记之. oracle 11g 新增了一个参数:deferred_segment_creation,含义是段延迟创建,默认是true.具体是什么意思呢? 如果这个参数设置为true,你新建了一个表T1,并且没有向其中插入数据,那么这个表不会立即分配extent,也就是不占数据空间,只有当你insert数据后才分配空间.这样可以节省少量的空间. 解决办法 1 设置deferred_segme