公司内的一个项目系统的数据库从Oracle 8i 升级到 9i。
机器t1 安装 Oracle 8.16
机器t2 安装 Oracle 8.17
机器t3 安装 Oracle 9i
现在为了将t1数据库中的某一个用户的数据导入到t3的9i中去, 在t3机器执行:
E:>eXP system/manager@t1
owner=wlBTst file=c:emp0805wlbtst.dmp log
= c:emp0805wlbtst.log compress=n
Export: Release 9.0.1.1.1 - ProdUCtion on
星期二8月 5 13:47:08 2003
(c) Copyright 2001 Oracle
Corporation. All rights reserved.
连接到: Oracle8i Enterprise Edition
Release 8.1.6.0.0 - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
EXP-00056: 碰到 ORACLE 错误 942
ORA-00942: 表或视图不存在
EXP-00000: 导出终止失败
E:> 所以只有在t1或t2的机器上执行exp,然后再用t3的imp将数据导入t3的9i库中, 当时我感到很纳闷,为什么不能用9i中的exp去把8i的数据导出来呢? 以下介绍两个规则: 规则一:从Oracle 低版本的Export数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,如从Oracle 7 到 Oracle 8。对于两个不相邻版本间进行转换,如从Oracle 6 到 Oracle 8,则应先将数据输入到中间版本—Oracle 7,再从中间数据库转入更高版本。 规则二:Oracle的Export/Import工具只能连接到拥有更高或者一样的Export/Import版本的数据库。如Oracle 8.0.5的Export/Import(版本8.0.5.0.0)可连接到Oracle 8.1.6数据库(版本8.1.6.0.0);高版本的Export导出来的转储文件,低版本的Import读不了;低版本的Export导出来的转储文件,高版本的Import可以进行读取。
owner=wlBTst file=c:emp0805wlbtst.dmp log
= c:emp0805wlbtst.log compress=n
Export: Release 9.0.1.1.1 - ProdUCtion on
星期二8月 5 13:47:08 2003
(c) Copyright 2001 Oracle
Corporation. All rights reserved.
连接到: Oracle8i Enterprise Edition
Release 8.1.6.0.0 - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
EXP-00056: 碰到 ORACLE 错误 942
ORA-00942: 表或视图不存在
EXP-00000: 导出终止失败
E:> 所以只有在t1或t2的机器上执行exp,然后再用t3的imp将数据导入t3的9i库中, 当时我感到很纳闷,为什么不能用9i中的exp去把8i的数据导出来呢? 以下介绍两个规则: 规则一:从Oracle 低版本的Export数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,如从Oracle 7 到 Oracle 8。对于两个不相邻版本间进行转换,如从Oracle 6 到 Oracle 8,则应先将数据输入到中间版本—Oracle 7,再从中间数据库转入更高版本。 规则二:Oracle的Export/Import工具只能连接到拥有更高或者一样的Export/Import版本的数据库。如Oracle 8.0.5的Export/Import(版本8.0.5.0.0)可连接到Oracle 8.1.6数据库(版本8.1.6.0.0);高版本的Export导出来的转储文件,低版本的Import读不了;低版本的Export导出来的转储文件,高版本的Import可以进行读取。