ORACLE 10G 数据库。数据库中有账号 A,B。  每个账号,关联不同的表空间。首先  导出 账号A 的所有对象。在账号B下,导入账号A的DMP文件。奇怪的是  A账号对应的表空间增加了,而B账号的表空间确没增加。请问这是怎么回事啊?

解决方案 »

  1.   

    1、如果目标系统中不存在跟原系统一样的表空间,这样会导入你用户默认的表空间如:你要导入的数据在原系统中是存放在USERS表空间的,而在目标系统并不存在这个表空间,那么你在导入数据时数据就会导入到目标系统中该用户的默认表空间2、 如果目标系统与原系统存在相同名称的表空间,则会被优先导入到相同名称的表空间中,
    而不是用户默认的表空间。3、目标系统存在相同表空间,但要导入到用户默认的表空间,则在目标系统中:a) REVOKE UNLIMITED TABLESPACE FROM 该USER
    b) 取消该用户在原系统导出数据所在表空间的配额:
    SQL>ALTER USER XXX QUOTA 0 ON OLD_TABLESPACE
    c) 将你要存储导入数据的表空间设为该用户默认的表空间
    d) 添加该用户在其默认表空间中的配额:
    SQL>ALTER USER XXX QUOTA UNLIMITED ON NEW_TABLESPACE
      

  2.   

    改变目的用户的默认表空间      
    首先,收回目的用户的"UNLIMITED TABLESPACE"权限:      
    revoke unlimited tablespace from username;      
    其次,取消目的用户在原数据导出表空间中的配额,
    这样才能迫使IMP把数据导入到用户的默认表空间中去。      
    然后,将希望导入的表空间设为目的用户的默认表空间,并添加配额。   
    最后,执行IMP。