日期:2014-05-16  浏览次数:20497 次

exp/imp导入导出版本问题和ORA-6550报错


  前几天有位同事问到exp/imp是否涉及到版本问题,我认为,只要是软件,都会涉及到高低版本的兼容性问题,Oracle也是软件,自然也是这样。

  简单的实验:

  exp工具版本:10g

  导出的source数据库版本:9i

  bash-4.1$ exp x/x@x tables=T file=/home/x/t.dmp

  Export: Release 10.2.0.4.0 - Production on Wed Dec 11 15:17:05 2013

  Copyright (c) 1982, 2007, Oracle. All rights reserved.

  EXP-00056: ORACLE error 6550 encountered

  ORA-06550: line 1, column 41:

  PLS-00302: component 'SET_NO_OUTLINES' must be declared

  ORA-06550: line 1, column 15:

  PL/SQL: Statement ignored

  EXP-00000: Export terminated unsuccessfully

  从报错看,好像是有个组件未定义,导致导出失败。

  从MOS上看到一篇文章,有个介绍exp/imp版本兼容性问题的经典总结:

  Export client compatibility:

  Always use a version of the EXPORT utility that is equal to the lowest version of either the source or the target database.

  导出客户端兼容性:建议使用和源数据库或目标数据库中最低版本一致的EXPORT工具版本。

  Import client compatibility:

  Always use a version of the IMPORT utility that is equal to the version of the target database.

  导入客户端兼容性:建议使用和目标数据库版本一致的IMPORT工具版本。

  这里很明显为我们实际中需要exp/imp导入导出指明了方向。