Oracle不同版本间用exp进行导数据时的问题

发表于:2007-06-22来源:作者:点击数: 标签:
关于Oracle不同的版本间用exp进行导数据时的一些问题。 公司内的一个项目系统的 数据库 从Oracle 8i 升级到 9i 机器t1 安装 Oracle 8.16 机器t2 安装 Oracle 8.17 机器t3 安装 Oracle 9i 现在为了将t1数据库中的某一个用户的数据导入到t3的9i中去, 在t3机器

   
  关于Oracle不同的版本间用exp进行导数据时的一些问题。
  公司内的一个项目系统的数据库从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的数据导出来呢?
  于是到网上搜索,找到一个如下网页:
  http://www.ucheng.net/news/YeNei/043.asp
  
  文中提到2个规则:
  
  规则一:从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可以进行读取。

原文转自:http://www.ltesting.net