今天有個朋友問我為什麼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
-
- 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 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
- With the Partitioning, OLAP, Data Mining and Real Application Testing options
-
- 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
-
- 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)
-
- About to export specified tables via Conventional Path ...
- . . exporting table TEST_EXP 74622 rows exported
- 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:25:51 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 character set and AL16UTF16 NCHAR character set
- import server uses ZHS16GBK character set (possible charset conversion)
- . 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
-
- 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 and Real Application Testing options
-
- 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_compiler_flags' AND
- 6 b.name = 'nls_length_semantics'
- 7 ;
-
- View created.
-
- SQL> exit
- Disconnected from 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 From 11g using EXP Utility Version 9iR2 Produces Corrupt Export Dump [ID 550740.1]
本文出自 “認真就輸” 部落格,請務必保留此出處http://luoping.blog.51cto.com/534596/1161921