oracle 10g的dmp如何导入9i

问题描述:如何将oracle 10g中的数据库对象迁移到9i中.这个10g和9i的服务器分别搭建在局域网的两个机器上,可以相互访问.

问题分析:在网上查了一些资料,表明要想将10g导出的dmp文件导入到9i中,是不可实现的.只能实现9i往10g中导.如果想要把10g中的数据导入到9i中,可以先到9i那台服务器上配置一个tnsnames.ora串,用于访问10g数据库,之后在9i服务器中用9i客户端提供的exp命令实现导出,再用imp命令实现导入.

10g导出的dmp往9i中导入,可能会报以下错误.

在安装有9i客户端执行导入命令时会报:

Import started on 2013-3-13 14:17:13
E:\oracle\ora92\bin\IMP.EXE log=C:\DOCUME~1\wangzh\LOCALS~1\Temp\plsimp.log file=D:\yusj\dqjz\dqjz20130308.dmp userid=dqjz/dqjz@ORCL buffer=30720 commit=no full=yes grants=yes ignore=yes indexes=yes rows=yes show=no constraints=yes

连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

IMP-00010: 不是有效的导出文件,标题验证失败
IMP-00000: 未成功终止导入

Import finished on 2013-3-13 14:17:13

在安装有10g客户端执行导入命令时会报:

Import started on 2013-3-13 上午 11:13:02
D:\oracle\product\10.2.0\db_1\bin\imp.exe log=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\plsimp.log file=C:\dqjz20130308.dmp userid=dqjz/dqjz@ORCL_232 buffer=30720 commit=no full=yes grants=yes ignore=yes indexes=yes rows=yes show=no constraints=yes

IMP-00058: 遇到 ORACLE 错误 6550
ORA-06550: 第 1 行, 第 33 列: 
PLS-00302: 必须说明 'SET_NO_OUTLINES' 组件
ORA-06550: 第 1 行, 第 7 列: 
PL/SQL: Statement ignored
IMP-00000: 未成功终止导入

Import finished on 2013-3-13 上午 11:13:03

问题解决:

1. 在安装有9i客户端的机器中配置tnsnames.ora,保证可以正常连接到10g数据库.

2. 在安装有9i客户端的机器中执行exp命令导出dmp文件之前,需要解决一个问题,那就是对BLOB的支持,如果要导出的表中含有BLOB字段,那么在执行exp命令的时候会报EXP-00003错误,解决方法如下:需要先连接到10数据库,用sys用户登录,找到exu9tne视图(view),备份出来.再把执行下面SQL语句:

CREATE OR REPLACE VIEW SYS.EXU9TNE
(tsno, fileno, blockno, length)
AS
SELECT ts#, segfile#, segblock#, length
FROM sys.uet$
WHERE ext# = 1
UNION ALL
SELECT "TSNO","FILENO","BLOCKNO","LENGTH" FROM SYS.EXU9TNEB;

注意,在导出完数据之后,一个要把这个view恢复到初始值. 

我本地的初始值为:

CREATE OR REPLACE VIEW SYS.EXU9TNE
(tsno, fileno, blockno, length)
AS
SELECT  ts#, segfile#, segblock#, length
        FROM    sys.uet$
        WHERE   ext# = 1;

3. 在安装有9i客户端的机器中执行imp命令,完成导入操作(注意在导入之前一定要先建立相应的表空间,用户等).

猜你喜欢

转载自ysj5125094.iteye.com/blog/1828701