今天有个朋友问我为什么11G的exp出来的文件不能导入到9I中?由于exp/imp工具的不兼容性,把高版本的数据库导到低版本时,需要使用低版本的exp/imp工具来导入导出。朋友用9i的exp去导出11G数据后再imp导入到9i中,正常导入,然而我自己在自己测试环境测试中切报错了,报错信息如下:
[Oracle9i@rhel4 admin]$ exp scott/oracle@orcl11g file='/tmp/scott_test_exp.sql' tables='test_exp'rows=N;
Export: Release 9.2.0.4.0 - Production on Fri Mar 22 06:18:38 2013
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining andReal Application Testing options
Export done in US7ASCII charactersetand AL16UTF16 NCHARcharacterset
server uses ZHS16GBK characterset (possible charset conversion)
Note: table data (rows) will not be exported
About to export specified tables via Conventional Path ...
. . exporting table TEST_EXP
Export terminated successfully without warnings.
[oracle9i@rhel4 admin]$ imp scott/oracle file='/tmp/scott_test_exp.dmp' tables='test_exp'
Import: Release 9.2.0.4.0 - Production on Fri Mar 22 07:08:59 2013
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to: Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
Export file created by EXPORT:V09.02.00 via conventional path
import done in US7ASCII charactersetand AL16UTF16 NCHARcharacterset
import server uses ZHS16GBK characterset (possible charset conversion)
IMP-00003: ORACLE error 96 encountered
ORA-00096: invalid value for parameter plsql_compiler_flags, must be from among NON_DEBUG, DEBUG, INTERPRETED, NATIVE
IMP-00000: Import terminated unsuccessfully
在11G,SHOW PARAMETER命令已经找不到plsql_compiler_flags这个参数,由另一个参数代替。
GOOGLE,BAIDU,METALINK相关的错误代码后没有找到解决方法。更改关键字plsql_compiler_flags在metalink找到解决方法,如下:
[oracle11g@rhel4 admin]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Fri Mar 22 07:27:50 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining andReal Application Testing options
SQL> CREATEORREPLACEVIEW exu9defpswitches (
2 compflgs, nlslensem ) AS
3 SELECT a.value, b.value
4 FROM sys.v$parameter a, sys.v$parameter b
5 WHERE a.name = 'plsql_code_type'AND
6 b.name = 'nls_length_semantics'
7 ;
View created.