1、任何一个有权限的用户都可以
设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment。
在sqlplus中,执行如下命令:
SQL>alter system set deferred_segment_creation=false;
查看:
SQL>show parameter deferred_segment_creation;
该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用。
注意并且要重新启动数据库,让参数生效
2、一定要要用导出的用户登陆数据库 DZH DZH
构建对空表分配空间的SQL命令,
查询当前用户下的所有空表(一个用户最好对应一个默认表空间)。命令如下:
-----------
SQL>select table_name from user_tables where NUM_ROWS=0;
-----------
根据上述查询,可以构建针对空表分配空间的命令语句,如下:
-----------
SQL>Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
3.重启数据库
4.exp DZH/DZH@orcl file=e:\dzh.dmp log=e:\dzh.log ;
(注意登陆用户是DZH,否则exp DZH/DZH@orcl file=e:\dzh.dmp log=e:\dzh.log owner=DZH;)
5.imp dzh7/dzh7@orcl fromuser=DZH touser=dzh7 file=e:\dzh.dmp log=e:\dzh7imp.log;