2011-08-18 22 views
5
rollback; 

non sembra annullare le modifiche delle tabelle.Come annullare ALTER TABLE usando sqlplus (Oracle 10g Express)?

Sfondo:
Sto generando alcuni script .sql (basati su script Hibernate analizzati) che stanno distruggendo i miei tavoli. L'importazione del database completo per i test richiede fino a 30 minuti (anche rallentando la mia macchina) e per quanto mi diverta fare le pause, preferisco semplicemente annullare tutto con un comando come il rollback e riprovare.

btw questo è Oracle 10g Express Edition di uscita 10.2.0.1.0

Questo è anche possibile?

risposta

4

Con l'edizione rapida, non sono sicuro che sia possibile. Non è possibile eseguire il rollback di un'operazione DDL come ALTER TABLE in quanto DDL è implicitamente impegnato.

Oracle ha l'opzione per create restore points che è possibile quindi eseguire il flashback dell'intero database in un punto nel tempo relativamente rapidamente. Questo annullerà gli effetti di tutte le transazioni impegnate (DML e DDL) tra la creazione del punto di ripristino e il punto in cui è stato emesso il comando di flashback. Ecco uno example of creating and flashing back to a restore point ed ecco un altro che fa il flashback for the entire database. Non sono sicuro che questa funzionalità sia disponibile nell'edizione Express.

+0

Via tuoi link (e Google), io sono solo in grado di trovare un modo per ripristinare le tabelle singoli. Conosci un modo per visualizzare in flashback l'intero punto di ripristino? – glenneroo

+1

@glenneroo: è possibile eseguire il flashback di un intero database su un punto di ripristino http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9011.htm e http://www.orafaq.com/ node/1847 sono buoni primer. –

+0

Suppongo che non sia disponibile per Express Edition. Eseguendo il comando ** altera il flashback del database attivo; ** restituisce il seguente errore: * ORA-00439: funzione non abilitata: Database Flashback *. In alternativa, per verificare se la funzione è disponibile, esegui ** seleziona flashback_on da v $ database; **. – glenneroo

Problemi correlati