Powinieneś prawdopodobnie skontaktować się z pomocą techniczną Oracle.
Czy masz kopię zapasową? Jeśli tak, przywróć tabelę z kopii zapasowej. W przeciwnym razie (i jeśli skontaktowanie się z Oracle nie jest dla Ciebie opcją)...
Oracle ma specjalne optymalizacje dla DUAL, ale nie wiem, czy jest coś specjalnego w samej tabeli. Potraktowałbym to jak normalny stół i zobaczyłbym, co się stanie. Spróbuj tego:
Połącz się jako SYSDBA, a następnie wykonaj następujące polecenia:
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;
I nigdy więcej NIGDY nie zmieniaj NIC w schemacie SYS!
EDYCJA:Właśnie zauważyłem duplikat z DZISIAJ:https://stackoverflow. com/questions/2816478/recovering-dual-table-in-oracle - dodano sugestie tutaj.