【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

你可能感兴趣的:(#,数据库)