Oracle 官方原則:IMP 版本必須 ≥ EXP 版本。10g 導出檔導入 9i 屬於「高版本導入低版本」,官方不支援。
catexp.sqlEXP 導出高版本資料IMP 導入低版本資料庫catexp.sql9i 起此法失效,直接用 9i EXP 導出 10g 資料會報錯:
EXP-00008: Oracle error %lu encountered
ORA-00904: invalid column name
Metalink 文檔記載:9i EXP 讀取 10g 資料字典視圖 EXU81RLS 時欄位不匹配。此 BUG 計劃在 10.0 修復,9i 不會回溯修補。
在 9i 目標資料庫以 SYS 身分執行以下 SQL 重建視圖,修正欄位定義:
CREATE OR REPLACE VIEW EXU81RLS AS
SELECT
u.name OWNER, o.name TABLE_NAME,
DECODE(BITAND(p.flags, 1), 1, 'Y', 'N') POLICY_EXISTS,
DECODE(BITAND(p.flags, 2), 2, 'Y', 'N') POLICY_ENABLED
FROM sys.user$ u, sys.obj$ o, sys.rls$ p
WHERE u.user# = o.owner#
AND o.obj# = p.obj#(+);
EXP 導出(含 CONSISTENT=Y 確保一致性)IMP 導入 DMP 檔EXPDP/IMPDP 支援 VERSION=9.2 參數直接產生相容導出檔CREATE TABLE AS SELECT 拉取資料