一、导入时少表
1.Oracle EXP导出,再IMP导入时,发现导入后,出现少表,有一些数据为空的表结构没有被导入,原因是于导出时,这些空表没有被导出。
SQL> show parameter deferred_segment_creation;
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
deferred_segment_creation boolean TRUE
deferred_segment_creation参数,在11.2.0.4g才有的参数,
创建一个表,在没有插入数据时是否分配空间,为true时,不分配空间,但在sys用户下不支持;
deferred_segment_creation=ture;
1.在sys用户下,创建一个没有数据的表时,同时自动分配空间;
2.在普通用户下,创建一个没有数据的表时,不会分配空间;
查看sql语句,是否已经分配空间;
select dbms_metadata.get_ddl('TABLE','T1') from dual;
deferred_segment_creation在11.2.0.4版本的Oracle数据库新增参数,默认是true。
这会导致在exp时,没有segment的对象不会导出。
解决:
1.设置deferred_segment_creation的值为false
此方法只对以后的表有效,之前的表还是没分配空间
2.创建表的时候声明立即创建Segment
create table tablename segment creation immediate;
3.对于已经创建但是还没有Segment的表来说,
可以执行
alter table tablename allocate extent
来使其创建出分配空间,当然也可以插入一条数据,使其创建分配空间;
版权声明:本文为博主原创文章,未经博主允许不得转载。
oracle