威尼斯www.9778.com-威尼斯正版官方网站

11g Oracle导出表 默认不导出数据为空的表解决

日期:2020-01-15编辑作者:服务器&运维

 

11g oracle导出表时会默认不导出数据为空


解决方案:

解决方法如下:

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_creation; 
   该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用。

2.  创建表的时候声明立即创建Segment

1.用以下这句查找空表并生成执行命令
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;2.将查询结果的内容导出,执行导出的语句。3.然后再用exp的方式去导出数据库,就可以完整的导出包括空表的数据库。

发现Deferred Segment Creation已经打开,再执行:
复制代码 代码如下:
SQL> select segment_name from user_segments where segment_name='CF_11g Oracle导出表 默认不导出数据为空的表解决。TEMPLATE';

3.对于已经创建但是还没有Segment的表来说,可以执行alter table XXX allocate extent来使其创建出     Segment,当然也可以插入一条数据,使其创建Segment

11g Oracle导出表 默认不导出数据为空的表解决。NAME                                 TYPE                 VALUE

此方法只对以后的表有效,之前的表没有Segment的还是没有。

没有返回值,数据库确实没有给CF_11g Oracle导出表 默认不导出数据为空的表解决。TEMPLATE表创建Segment,这就验证了为什么报错的都是空表。


no rows selected

执行EXP导出时,部分表提示 EXP-00011:表不存在错误,但是查询user_all_tables视图,此表确实是存在的,并且执行select语句也能成功,不过表为空表,查看权限等也没有问题。后来通过查询资料,发现问题是由Deferred Segment Creation参数引起的。

create table XXX (XXX  XXX) SEGMENT CREATION IMMEDIATE;

以报错的表cf_template为例,执行以下查询:

deferred_segment_creation            boolean              TRUE

在给客户培训的过程中,发现客户数据库服务器存在一个奇怪的现象。客户数据库服务器环境为AIX6+Oracle11gR2,具体现象如下:

1.  设置deferred_segment_creation的值为false

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

复制代码 代码如下:
SQL> show parameter DEFERRED_SEGMENT_CREATION

本文由威尼斯www.9778.com发布于服务器&运维,转载请注明出处:11g Oracle导出表 默认不导出数据为空的表解决

关键词:

忘记oracle的sys客商密码怎么订正威尼斯www.9778.com

我们在通过   一、忘记除SYS、SYSTEM用户之外的用户的登录密码。 用SYS (或SYSTEM)用户登录: CONN SYS/PASS_WORD AS SYSDBA; 使用...

详细>>

oracle分页存储过程 oracle存储过程实例

复制代码 代码如下: import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; imp...

详细>>

oracle中to

SYSDATE               TO_CHAR(SYSDATE,'HH')     -------------------- ---------------------     2003-10-13 19:35:21   07    6...

详细>>

在Tomcat服务器下使用连接池连接Oracle数据库

四:提供一个jsp页面: 复制代码 代码如下: 在C:/Program Files/Tomcat5.5.7/conf/下建立context.xml,在E:/MyWorkSpace/test下新建WE...

详细>>