Probabilmente dovresti contattare il supporto Oracle.
Hai un backup? In tal caso, ripristina la tabella dal backup. Altrimenti (e se contattare Oracle non è un'opzione per te)...
Oracle ha ottimizzazioni speciali per DUAL, ma non so se c'è qualcosa di speciale nella tabella stessa. Lo tratterei come un normale tavolo e vedrei cosa succede. Prova questo:
Connettiti come SYSDBA e quindi esegui questi comandi:
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;
E non cambiare mai più NULLA nello schema SYS!
EDIT:ho appena notato un duplicato di OGGI:https://stackoverflow. com/questions/2816478/recovering-dual-table-in-oracle - aggiunti suggerimenti qui.