Как отменить ALTER TABLE с помощью sqlplus (Oracle 10g Express)?

rollback;

похоже, не отменяет изменения в таблице.

Справочная информация:
Я создаю несколько сценариев .sql (на основе проанализированных сценариев Hibernate), которые уничтожают мои таблицы. Импорт полной базы данных для тестирования занимает до 30 минут (также замедляя мою машину), и, хотя мне нравятся перерывы, я бы предпочел просто отменить все с помощью такой команды, как откат и повторить попытку.

Кстати, это Oracle 10g Express Edition Release 10.2.0.1.0

Это вообще возможно?


person glenneroo    schedule 18.08.2011    source источник


Ответы (2)


С экспресс-выпуском я не уверен, что это возможно. Вы не можете откатить операцию DDL, такую ​​как ALTER TABLE, потому что DDL неявно зафиксирован.

У Oracle есть возможность создавать точки восстановления что вы можете затем относительно быстро выполнить ретроспективный возврат всей базы данных к определенному моменту времени. Это отменит эффекты всех зафиксированных транзакций (DML и DDL) между созданием точки восстановления и точкой, в которой вы выполнили команду flashback. Вот пример создания и возврата к точке восстановления, а вот другой, который выполняет ретроспективу для всей базы данных. Я просто не уверен, что эта функция доступна в экспресс-версии.

person Justin Cave    schedule 18.08.2011
comment
С помощью ваших ссылок (и Google) я могу найти способ восстановить только отдельные таблицы. Вы знаете, как вернуть в прошлое всю точку восстановления? - person glenneroo; 19.08.2011
comment
@glenneroo - вы можете выполнить возврат всей базы данных к точке восстановления download.oracle.com/docs/cd/B19306_01/server.102/b14200/ и orafaq.com/node/1847 - хорошие учебники. - person Justin Cave; 19.08.2011
comment
Я думаю, это недоступно для Express Edition. Выполнение команды alter database flashback on; возвращает следующую ошибку: ORA-00439: функция не включена: Flashback Database. В качестве альтернативы, чтобы проверить, доступна ли функция, просто запустите select flashback_on from v $ database;. - person glenneroo; 23.08.2011

Эта версия Oracle выполняет фиксацию любых операторов ALTER TABLE.

См. Этот пост: можно ли откатить операторы CREATE TABLE и ALTER TABLE в основных базах данных SQL?

person Lost in Alabama    schedule 18.08.2011