Oracle错误——tablespace 'XXXX' does not exist

错误

  • 在使用IMP命令导入Oracle数据的时候,因为导出数据的数据库表空间和导入数据的数据库表空间不同,导致导入数据失败,出现:tablespace 'XXXX' does not exist
  • 在网上找了很多教程,说是使用IMP命令指定表空间,试过之后没有产生作用,只好另想他法。
  • Next

解决办法

  • 思路:将导入数据的数据库表空间修改为和数据相匹配的名称,将数据导入之后,再将表空间名称修改过来。
  • 步骤
    • 以(导入数据库表空间名称:ZHB2;数据源表空间名称:HNQY_DATA)为例。
    • 查看导入数据库的表空间名称
      SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size 
      FROM dba_tablespaces t, dba_data_files d 
      WHERE t.tablespace_name = d.tablespace_name 
      GROUP BY t.tablespace_name;  
    • 记下表空间名称!!!
      • 当前表空间名称为:ZHB2
      • 修改的表空间名称为:HNQY_DATA
    • 修改表空间名称
      alter tablespace  ZHB2 rename to HNQY_DATA;
    • 导入数据
      imp HNQY/HNQY@ORCL file='/home/oracle/HNQS0607.dmp' fromuser=HNQY touser=cz_zcgl  ignore=y;
    • 将表空间修改回ZHB2
      alter tablespace  HNQY_DATA rename to ZHB2;
    • Next
原文地址:https://www.cnblogs.com/zuiyue_jing/p/10483426.html