一直以来,我都认为只要指定用户的默认表空间,向该用户导入数据时,会自动进入到默认表空间。后来发现从
System
导出的
dmp
文件在导入时,即使指定新用户的默认表空间,还是要往
System
表空间中导数据。

上网搜了一下,还是有解决方法的,常见的方法如下:

SQL> create user myhuang identified by myhuang default tablespace myhuang;

SQL> grant resource,connect to myhuang;

SQL> grant dba to myhuang;//
DBA
权限

SQL> revoke unlimited tablespace from myhuang;//
撤销此权限

SQL> alter user myhuang quota 0 on system;//
将用户在
System
表空间的配额置为
0

SQL> alter user myhuang quota unlimited on myhuang;//
设置在用户在
myhuang
表空间配额不受限。

 
经过上述设置后,就可以用
imp
导入数据,数据将会进入指定的
myhuang
表空间:

C:\Documents and Settings\myhuang>imp system/123456@vdb fromuser=lnxh tous

er=myhuang file=G:\myhuang\lnxh.dmp ignore=y grants=n

 
顺便说两个小问题:

1
IMP-00003: 
遇到
 ORACLE 
错误
 1658

ORA-01658: 
无法为表空间
 MYHUANG 
中的段创建
 INITIAL 

通常这个问题可以通过
Resize
增加表空间数据文件大小来解决。

 
2
)删除表空间

SQL> drop tablespace myhuang including contents and datafiles;

10g
中实验,
drop
表空间之后,仍然需要手动去删除数据文件。