很多人在进行数据迁移时,希望把数据导入不同于原系统的表空间,在导入之后却往往发现,数据被导入了原表空间。
本例举例说明解决这个问题:
1.如果缺省的用户具有DBA权限那么导入时会按照原来的位置导入数据,即导入到原表空间
SQL> select table_name,tablespace_name from user_tables;//查看用户表在哪一个表空间
2解决方法:回收用户unlimited tablespace权限这样就可以导入到用户缺省表空间
创建表空间create tablespace test1 datafile 'd:/test1.ora' size 10M;
创建用户SQL> create user test identified by passwd default tablespace test1temporary tablespace temp
分配权限grant connect,resource to test ;grant dba to test;
收回用户unlimited tablespace权限:revoke unlimited tablespace from bjbbs;
分配限额alter user test quota 0 on users;alter user test quota unlimited on test1;
3.重新导入数据
局限:如果是带有大字段的表,比如blob字段类型的,将不能变更表空间。
删除表空间:
alter database orcl datafile 'd:/TEST1.ORA' offline drop;
drop tablespace test1 INCLUDING CONTENTS AND DATAFILES;