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实例

浙公网安备 33010602011771号