1. 程式人生 > >EXP-00008:遇到ORACLE錯誤904問題

EXP-00008:遇到ORACLE錯誤904問題

導致 oracl pub olt char 重要 testin oracle 類型

案例情景--在一次Oracle 數據庫導出時:

C:\Documents and Settings\Administrator>exp lsxy/lsxy@lsxy_db file=E:\lsxy.dmp owner=lsxy

Export: Release 11.2.0.1.0 - Production on 星期一 11月 26 14:07:18 2012 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
連接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Data Mining and Real Application Testing options
已導出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
. 正在導出 pre-schema 過程對象和操作
. 正在導出用戶 JXUNICOM 的外部函數庫名
. 導出 PUBLIC 類型同義詞
. 正在導出專用類型同義詞
. 正在導出用戶 JXUNICOM 的對象類型定義
即將導出 JXUNICOM 的對象…
. 正在導出數據庫鏈接
. 正在導出序號
. 正在導出簇定義
. 即將導出 JXUNICOM 的表通過常規路徑…
EXP-00008: 遇到 ORACLE 錯誤 904
ORA-00904: "POLTYP": invalid identifier
EXP-00000: 導出終止失敗
發生EXP-00008: 遇到 ORACLE 錯誤 904 的導出報錯。
根據網上的資料和總結,分析可能是本地使用的exp導出工具的版本與數據庫服務器端exp版本不一致導致。

在命令操作中發現,本地安裝的Oracle 版本是Release 11.2.0.1.0,而數據庫服務器端安裝的Oracle 是Release 10.2.0.4.0 .

由於Oracle的imp/exp組件的操作原則--向下兼容,且有一些規則:

規則1:低版本的exp/imp可以連接到高版本(或同版本)的數據庫服務器,但高版本的exp/imp不能連接到低版本的數據庫服務器;

規則2:高版本exp出的dmp文件,低版本無法imp(無法識別dmp文件);低版本exp出的dmp文件,高版本可以imp(向下兼容);

規則3:從Oracle 低版本Export的數據可以Import到Oracle高版本中,但限於Oracle的相鄰版本,如從Oracle 10 到 Oracle 11.對於兩個不相鄰版本間進行轉換,如從Oracle 9 到 Oracle 11,則應先將數據輸入到中間版本-Oracle 10,再從中間數據庫轉入更高版本Oracle 11.

據此,最快捷的解決方案就是使用安裝了10g Oracle 的機子,進行服務器上數據庫數據的導出。

最重要的還是exp/imp程序與相關聯數據庫的版本問題

EXP-00008:遇到ORACLE錯誤904問題