错误
- 在使用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