我是将一个用户名下的全库导出的,但是我忘了表空间名,也忘了dba的密码,我的是10g

解决方案 »

  1.   

    可是我正常导入了,没报错
    我市把dmp文件导入到一个新服务器的数据库中,新服务器中有和原服务器相同的用户,只是忘了表空间名称
      

  2.   

    你用超级用户查询一下:
    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;
      

  3.   

    感谢zgh2003(世纪飞扬)
    我犯了超级低级的错误,原服务器的用户表都建在SYSTEM表空间里了,不知道能否能从SYSTEM中把所属一用户(如testuser)的表分离出来,然后再导入到新服务器的新建的表空间里
      

  4.   

    可以,将数据导入到新服务器后,同时导入的表在testuser下,先为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;
      

  5.   

    将查询出来的语句copy至command windows执行.
      

  6.   

    楼上的语句有一处不脱
    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;