首页 > 代码库 > 【ORACLE】 11g 数据库表导出再导入10g 时空表不能导出的问题

【ORACLE】 11g 数据库表导出再导入10g 时空表不能导出的问题

问题:ORACLE 11g 将某用户自带表用 EXP 命令导出再IMP导入 10g 时 发现空表不能到导出

原因:11g 开始建表时,默认不分配 segment ,以节省空间,当表插入第一条数据时,再分配 segment

解决方法3个途径:
1:向空白插入一条数据,再删除掉,就分配空间了(空表比较少)。
2:修改系统参数alter system set deferred_segment_create=false;
   (对以后新增的表系统会分配 segment),重启数据库。
3:批量对现有的空表分配空间
select ‘alter table ‘ || table_name ||  ‘ allocate extent;‘ as sql from all_tables where num_rows = 0 and OWNER=username ;

执行导入导出工作
1. exp  system/managerr@servicename owner=username1 file=expfile.dmp  full=y 
2. imp  ystem/manager@servicename fromuser=username1 touser=username2 ignore=y file=expfile.dmp  full=y

 

【ORACLE】 11g 数据库表导出再导入10g 时空表不能导出的问题