9I与11G数据传输

使用imp/exp命令将数据从11g导入至9i

使用9i客户端连接11g数据库实例,使用exp命令导出dmp

但是此dmp在使用11g客户端导入11g的实例时可能会出现Illegal instruction(非法指令)错误,暂未找到解决办法

使用9i客户端导入11g实例时会出现setSegmentation fault错误,暂未找到解决办法

使用9i客户端导入9i实例会出现setSegmentation fault,解决办法如下

在使用exp导出之前,需要先修改11g实例的exu9defpswitches视图

将11g的

CREATE OR REPLACE VIEW exu9defpswitches ( 
                compflgs, nlslensem ) AS 
        SELECT  a.value, b.value 
        FROM    sys.v$parameter a, sys.v$parameter b 
        WHERE   a.name = 'plsql_compiler_flags' AND 
                b.name = 'nls_length_semantics' 
  
修改为
  
CREATE OR REPLACE VIEW exu9defpswitches ( 
                compflgs, nlslensem ) AS 
        SELECT  a.value, b.value 
        FROM    sys.v$parameter a, sys.v$parameter b 
        WHERE   a.name = 'plsql_code_type' AND 
                b.name = 'nls_length_semantics' 
原因是
Exp utility version 9iR2 internally uses the dictionary view EXU9DEFPSWITCHES to get information about some 
parameters like PLSQL_COMPILER_FLAGS and NLS_LENGTH_SEMANTICS. The parameter PLSQL_COMPILER_FLAGS doesn't 
exist in 11g anylonger and so the view EXU9DEFPSWITCHES returns unhandled 0 rows.
9i客户端的exp使用EXU9DEFPSWITCHES视图获取配置参数,但是oracle在11g版本不再保留此参数,9i客户端在连接11g实例时无法获取参数
修改成功后使用exp导出dmp,使用imp导入到9i实例
posted @ 2015-02-02 11:08  CoderLeob  阅读(790)  评论(0)    收藏  举报