簡體   English   中英

重新創建 Oracle DUAL 表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM