首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 9i exp 導出 10g R2 報 EXP-00003:未找到段存儲定義錯誤分析

     編輯:Oracle 資料庫基礎

錯誤現場

使用 Oracle 9.2.0.1 Client 導出 Oracle 10.2.0.3 資料庫,過程中報錯:

EXP-00003: 未找到段 (4,131) 的存儲定義

錯誤發生於導出含 LOB 欄位的表(如 CA_DEPOSE_REPORT),且多為 0 行資料的表。

根因

Client 版本過低。Oracle 9i exp 工具無法正確解析 10g R2 引入的新段類型(如 SecureFiles LOB、段壓縮屬性、新式資料塊頭),導致讀取段定義失敗。官方文檔明確規定:導出工具版本必須 ≥ 目標資料庫版本,或至少相同主版本。

解決方案

  1. 使用 10g R2 自帶的 exp:在 10.2.0.3 伺服器端直接執行 exp,或安裝 10g Client 於應用主機。
  2. 改用 Data Pump (expdp/impdp):10g 強力推薦,支援並行、網路模式、細粒度過濾,且無版本相容性問題。
  3. 若必須用 9i exp:僅能導出不含新特性的傳統表,LOB 表需先 ALTER TABLE ... MOVE LOB (...) STORE AS BASICFILE 降級存儲格式(不建議生產環境)。

驗證步驟

-- 確認用戶端版本
exp help=y | head -1
-- Export: Release 10.2.0.3.0 - Production  (正確)

-- 確認資料庫版本
SELECT * FROM v$version;

補充:EXP 關鍵參數速查

參數說明預設值
USERID用戶名/密碼@連線串(必須為第一個參數)-
FULL全庫導出N
OWNER指定 Schema 列表-
TABLES指定表列表,支援分區 T1:P1-
FILE導出檔名稱EXPDAT.DMP
COMPRESS將 Extent 合併為單一 Initial ExtentY
GRANTS/INDEXES/CONSTRAINTS/TRIGGERS是否導出權限/索引/約束/觸發器Y
DIRECT直接路徑導出(繞過 SQL 層,速度快)N
CONSISTENT交易一致性導出(需足夠 UNDO)N
LOG日誌檔路徑螢幕輸出
PARFILE參數檔路徑,避免命令行過長-
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved