轉載:
關於Oracle Exp-00003問題的解決方案
前天在導資料的時候發生了Exp-00003的錯誤,以前也遇到過這樣的問題,當時的解決方案是到資料庫伺服器本機上導,問題解決了,但是這次是從oracle 9.2.0.1.0用戶端上匯出(而資料庫伺服器是10.2.0.1.0),要求是用9.2.0.1.0的export匯出,因為匯出的DMP檔案要匯入到9.2.0.1.0上,因此到本機上匯出的方法行不通,經過尋找相應的文檔問題解決了,下面把解決方案作個記錄。D:\hanganbuild>exp hangyun/hangyun@HANGAN100 file=c:\0425.dmp tables=sys_newsExport: Release 9.2.0.1.0 - Production on 星期三 4月 25 13:24:34 2007Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.串連到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已匯出 ZHS16GBK 字元集和 AL16UTF16 NCHAR 字元集即將匯出指定的表通過常規路徑 ...
. . 正在匯出表 SYS_NEWS
EXP-00003: 未找到段 (4,99363) 的儲存定義
匯出成功終止,但出現警告。遇到這樣的情況解決的辦法有兩個:一個就是上面提到的到伺服器本機上匯出,但這時的DMP檔案會和伺服器本機上的EXPORT版本一致。第二種方法就是更改資料庫伺服器端的oracle系統的視圖定義:具體的視圖為: EXU9TNE該視圖初始建立時的位置為: $ORACLE_HOME/rdbms/admin/catexp.sql裡初始的定義為:
CREATE
OR
REPLACE
VIEW EXU9TNE
(tsno, fileno, blockno, length)
AS
SELECT ts#, segfile#, segblock#, length
FROM
sys.uet$
WHERE ext# = 1以sys使用者登入資料庫伺服器重建立立該視圖:
CREATE
OR
REPLACE
VIEW EXU9TNE
(tsno, fileno, blockno, length)
AS
SELECT ts#, segfile#, segblock#, length
FROM
sys.uet$
WHERE ext# = 1
UNION ALL select "TSNO","FILENO","BLOCKNO","LENGTH" from sys.exu9tneb注意就是增加上面標紅的語句然後再試下就應該OK了。D:\hanganbuild>exp hangyun/hangyun@HANGAN100 file=c:\0425.dmp tables=sys_newsExport: Release 9.2.0.1.0 - Production on 星期三 4月 25 13:36:31 2007Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.串連到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已匯出 ZHS16GBK 字元集和 AL16UTF16 NCHAR 字元集即將匯出指定的表通過常規路徑 ...
. . 正在匯出表 SYS_NEWS 4999 行被匯出
在沒有警告的情況下成功終止匯出。(注意:Oracle的系統檢視表最好不要輕易改動,操作執行完後,最好是改回原來的視圖)