【現象描述】:
當Oracle數據庫中,使用不同版本的exp工具進行數據庫導出時,有時候會遇到類似如下錯誤:
EXP-00003: no storage definition found for segment(11, 307)
EXP-00003: no storage definition found for segment(11, 523)
EXP-00003: no storage definition found for segment(11, 643)
EXP-00003: no storage definition found for segment(11, 275)
【原因分析】:
"EXP-00003: no storage definition found for segment ....."錯誤,和Oracle的一個小Bug相關,可以通過修改一個導出相關的View來解決。
在目標數據庫使用sys用戶,執行如下SQL創建新的view:
CREATE OR REPLACE VIEW exu9tne (
tsno, fileno, blockno, length) AS
SELECT ts#, segfile#, segblock#, length
FROM sys.uet$
WHERE ext# = 1
UNION ALL
SELECT * FROM SYS.EXU9TNEB
/
【處理過程】:
然後就可以正常進行導出操作,exp完成後, 最好將視圖還原(Metalink建議):
CREATE OR REPLACE VIEW exu9tne (
tsno, fileno, blockno, length) AS
SELECT ts#, segfile#, segblock#, length
FROM sys.uet$
WHERE ext# = 1
/
EXU9TNE視圖初始由 $ORACLE_HOME/rdbms/admin/catexp.sql 腳本創建。