[英]Recreate the Oracle DUAL table
有沒有辦法在 Oracle 中創建/重新創建雙表? 它不小心掉了下來。
您可能應該聯系 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 - 在此處添加了建議。
如果DUAL
被意外丟棄,Oracle 會變得很奇怪。
SQLPlus 說SP2-0575: Use of Oracle SQL feature not in SQL92 Entry Level.
如果沒有sys.DUAL
或當前用戶無權從中選擇。
感覺就像 oracle 根據DUAL
確定與版本相關的功能。
雙表是系統表空間中的虛擬表。 作為用戶,您無權放棄它。 如果您的架構中有自己的雙表,您可以玩轉它。 你可以執行 dml,刪除它,截斷它等等。即使你刪除了,你也可以從與以前相同的腳本中重新創建它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.