2011-08-18 39 views
5
rollback; 

Parece que no se han podido deshacer los cambios de la tabla.¿Cómo deshacer ALTER TABLE utilizando sqlplus (Oracle 10g Express)?

Antecedentes:
Estoy generando algunas secuencias de comandos .sql (basadas en scripts de Hibernate analizados) que están destruyendo mis tablas. La importación de la base de datos completa para las pruebas demora hasta 30 minutos (también ralentiza mi máquina) y por mucho que disfrute tomar descansos, prefiero deshacer todo con un comando como revertir y volver a intentarlo.

por cierto esta es Oracle 10g Express Edition Release 10.2.0.1.0

Es esto posible?

Respuesta

4

Con la edición express, no estoy seguro de que esto sea posible. No puede deshacer una operación DDL como ALTER TABLE porque DDL está comprometido implícitamente.

Oracle tiene la opción de create restore points que luego puede retroceder toda la base de datos a un punto en el tiempo relativamente rápido. Eso deshará los efectos de todas las transacciones confirmadas (DML y DDL) entre la creación del punto de restauración y el punto donde emitió el comando de flashback. Aquí hay un example of creating and flashing back to a restore point y aquí hay otro que hace el flashback for the entire database. Simplemente no estoy seguro de que esta funcionalidad esté disponible en la edición express.

+0

A través de sus enlaces (y Google), yo sólo soy capaz de encontrar una manera de restaurar tablas individuales. ¿Conoces una manera de rememorar todo el punto de restauración? – glenneroo

+1

@glenneroo: puede hacer una copia de seguridad de una base de datos completa en un punto de restauración http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9011.htm y http://www.orafaq.com/ node/1847 son buenos iniciadores. –

+0

Supongo que no está disponible para Express Edition. Ejecutar el comando ** alterar el flashback de la base de datos en; ** devuelve el siguiente error: * ORA-00439: función no habilitada: Flashback Database *. Alternativamente, para verificar si la característica está disponible, simplemente ejecute ** seleccione flashback_on desde v $ database; **. – glenneroo

Cuestiones relacionadas