Есть ли способ создать/воссоздать двойную таблицу в Oracle? Он случайно упал.Восстановить таблицу Oracle DUAL
ответ
Возможно, вам стоит обратиться в службу поддержки 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;
И никогда не EVER ничего менять в схеме SYS снова!
EDIT: Только что заметил дубликат от СЕГОДНЯ: https://stackoverflow.com/questions/2816478/recovering-dual-table-in-oracle - здесь добавлены предложения.
Двойной стол - это фиктивная таблица в системном табличном пространстве. Как пользователь, у вас нет права его бросить. если у вас есть своя двойная таблица в вашей схеме, вы можете играть вокруг нее. U может выполнять dml, отбрасывать его, обрезать и т. Д. Даже если u drop, u может воссоздать его снова из тех же сценариев, что и предыдущий.