2010-05-12 43 views

回答

4

您應該聯繫Oracle支持。

你有備份嗎?如果是這樣,請從備份中恢復表格。否則(如果聯繫Oracle不是您的選擇)...

Oracle對DUAL有特殊的優化,但我不知道表本身是否有任何特殊之處。我只是把它當作普通桌子看看會發生什麼。試試這個:

以SYSDBA身份連接,然後執行以下命令:

CREATE TABLE SYS.DUAL 
(
    DUMMY VARCHAR2(1 BYTE) 
); 

INSERT INTO SYS.DUAL VALUES ('X'); 

COMMIT; 

GRANT SELECT ON SYS.DUAL TO public WITH GRANT OPTION; 

CREATE PUBLIC SYNONYM DUAL FOR SYS.DUAL; 

而且永遠不會再改變什麼在SYS模式!

編輯:剛剛注意到從今天起重複:https://stackoverflow.com/questions/2816478/recovering-dual-table-in-oracle - 在這裏增加了建議。

-1

雙表是系統表空間中的虛擬表。作爲用戶,你沒有權利放棄它。如果你在你的模式中有自己的雙重表格,你可以在它周圍玩耍。 U可以執行dml,刪除它,截斷它等等。即使你放棄了,你也可以用與前面相同的腳本重新創建它。