Как отменить ALTER TABLE с помощью sqlplus (Oracle 10g Express)? - PullRequest
5 голосов
/ 18 августа 2011
rollback;

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

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

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

Возможно ли это вообще?

Ответы [ 2 ]

4 голосов
/ 18 августа 2011

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

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

2 голосов
/ 18 августа 2011

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

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

...