你用超级用户查询一下: SELECT username,default_tablespace FROM dba_users; 这个语句可以查出当前用户的默认所属表空间.SELECT OWNER,TABLE_NAME,TABLESPACE_NAME FROM dba_tables WHERE owner='USERNAME'; 这个语句可以查出你正导的表所属表空间. 以上是以超级管理员可以查询出的信息,对于当前用户来说,以当前用户登录: select table_name,tablespace_name from user_tables;
我市把dmp文件导入到一个新服务器的数据库中,新服务器中有和原服务器相同的用户,只是忘了表空间名称
SELECT username,default_tablespace FROM dba_users;
这个语句可以查出当前用户的默认所属表空间.SELECT OWNER,TABLE_NAME,TABLESPACE_NAME FROM dba_tables WHERE owner='USERNAME';
这个语句可以查出你正导的表所属表空间.
以上是以超级管理员可以查询出的信息,对于当前用户来说,以当前用户登录:
select table_name,tablespace_name from user_tables;
我犯了超级低级的错误,原服务器的用户表都建在SYSTEM表空间里了,不知道能否能从SYSTEM中把所属一用户(如testuser)的表分离出来,然后再导入到新服务器的新建的表空间里
sql>conn sys@service_name as sysdba;
sql>alter user testuser quota unlimited on new_tablespace_name;
sql>conn testuser@service_name;
在pl/sql developer中另开一个sql windows窗口:
select 'alter table ' || table_name || ' move to new_tablespace_name;' from user_tables;
select 'alter table ' || table_name || ' move to new_tablespace_name;' from user_tables;应改写为
select 'alter table ' || table_name || ' move tablespace new_tablespace_name;' from user_tables;