Вероятно трябва да се свържете с поддръжката на 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 - добавени предложения тук.