日期:2014-05-17  浏览次数:20903 次

关于表空间的疑惑
新建了一个表空间KK,指定文件名为KK.DBF,大小为1024M
用户UTC的默认表空间为KK.DBF
现在在dos下用imp导入数据,为什么导进去的数据不是在KK.DBF里而是在USERS01.DBF里?


问题1:如果把导入USERS01.DBF里的数据删除,我用drop   tablespace   KK   including   contents   and   datafils   ,只删除了KK.dbf,再导的时候就提示违反唯一性了。
问题2:   怎样才能把数据导在KK.DBF里?
问题3:如果不能把数据导在KK。DBF里,那建表空间的意义何在呢?


刚入门,菜菜,谢谢先。


------解决方案--------------------
新建了一个表空间KK,指定文件名为KK.DBF,大小为1024M
用户UTC的默认表空间为KK.DBF
现在在dos下用imp导入数据,为什么导进去的数据不是在KK.DBF里而是在USERS01.DBF里?
可能原因:导出的数据的表空间为users,且用户UTC是否拥有unlimited tablespace权限,revoke unlimited tablespace from utc;
收回权限再尝试

问题1:如果把导入USERS01.DBF里的数据删除,我用drop tablespace KK including contents and datafils ,只删除了KK.dbf,再导的时候就提示违反唯一性了。
删除了KK tablespace和users tablespace一点关系都没有,所以删除KK表空间不影响刚才导入的数据

重新导入的时候加上参数ignore=y等,就可以了



------解决方案--------------------
.回收用户unlimited tablespace权限
这样就可以导入到用户缺省表空间
SQL> create user bjbbs identified by passwd
2 default tablespace bjbbs
3 temporary tablespace temp
4 /

User created.


SQL> grant connect,resource to bjbbs;

Grant succeeded.

SQL> grant dba to bjbbs;

Grant succeeded.

SQL> revoke unlimited tablespace from bjbbs;

Revoke succeeded.

SQL> alter user bjbbs quota 0 on users;

User altered.

SQL> alter user bjbbs quota unlimited on bjbbs;

User altered.

SQL> exit


再重新导入