Воссоздать таблицу Oracle DUAL - PullRequest
2 голосов
/ 12 мая 2010

Есть ли способ создать / воссоздать двойную таблицу в Oracle? Случайно упал.

Ответы [ 2 ]

4 голосов
/ 12 мая 2010

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

0 голосов
/ 01 июня 2010

Dual Table - фиктивная таблица в системном табличном пространстве. Как пользователь, у вас нет права на его удаление. если у вас есть собственный двойной стол в вашей схеме, вы можете поиграть с ним. Вы можете выполнить dml, удалить его, обрезать его и т. Д. Даже если вы удалите его, вы можете снова создать его из тех же сценариев, что и в предыдущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...