天天看點

ORACLE 11G資料庫遷移到9I報 IMP-00003 ORA-00096 IMP-00000

      今天有個朋友問我為什麼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 and Real Application Testing options 

Export done in US7ASCII character set and AL16UTF16 NCHAR character set 

server uses ZHS16GBK character set (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 

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 character set and AL16UTF16 NCHAR character set 

import server uses ZHS16GBK character set (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 

SQL> CREATE OR REPLACE VIEW 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. 

再次導出導入正常

[oracle9i@rhel4 admin]$ exp scott/ORACLE@orcl11g file='/tmp/scott_test_exp.dmp' tables='test_exp'; 

Export: Release 9.2.0.4.0 - Production on Fri Mar 22 07:25:43 2013 

. . exporting table                       TEST_EXP      74622 rows exported 

Import: Release 9.2.0.4.0 - Production on Fri Mar 22 07:25:51 2013 

. importing SCOTT's objects into SCOTT 

. . importing table                     "TEST_EXP"      74622 rows imported 

Import terminated successfully without warnings. 

11G中改回原來的視圖定義

[oracle11g@rhel4 sql]$ sqlplus / as sysdba 

SQL*Plus: Release 11.2.0.3.0 Production on Mon Mar 25 02:15:51 2013 

  5          WHERE   a.name = 'plsql_compiler_flags' AND 

SQL> exit 

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production 

參考文檔:

Export From 11g using EXP Utility Version 9iR2 Produces Corrupt Export Dump [ID 550740.1]

<b>     本文轉自7343696 51CTO部落格,原文連結:http://blog.51cto.com/luoping/1161921</b><b>,如需轉載請自行聯系原作者</b>