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