2011-08-18 11 views
5
rollback; 

テーブルの変更を元に戻すことはできません。sqlplus(Oracle 10g Express)を使用してALTER TABLEを元に戻す方法は?

背景:
私はいくつかの.sqlスクリプト(解析されたHibernateスクリプトに基づいています)が私のテーブルを破壊しています。テスト用の完全なデータベースをインポートするには30分(マシンの速度も遅くなります)、休憩を取るのが大好きです。ロールバックなどのコマンドですべてを元に戻してからやり直したいと思っています。

ところでこれは、Oracle 10グラムExpress Editionのリリース10.2.0.1.0

これはさえ可能ですか?

答えて

4

エクスプレス版では、これが可能であるかどうかはわかりません。 DDLが暗黙的にコミットされているため、ALTER TABLEのようなDDL操作はロールバックできません。

Oracleには、create restore pointsというオプションがあり、データベース全体を比較的早い時点にフラッシュバックできます。これにより、リストア・ポイントの作成とflashbackコマンドを発行したポイントとの間のすべてのコミット済みトランザクション(DMLおよびDDL)の影響が取り消されます。ここにはexample of creating and flashing back to a restore pointがあり、もう1つはflashback for the entire databaseです。私はこの機能がエクスプレス版で利用可能であるかどうかだけは分かりません。

+0

、私は、単一のテーブルを復元する方法を見つけることができますよ。復元ポイント全体をフラッシュバックする方法を知っていますか? – glenneroo

+1

@glenneroo - データベース全体をリストア・ポイントにフラッシュバックできます。http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9011.htmおよびhttp://www.orafaq.com/ノード/ 1847は良いプライマーです。 –

+0

私はそれがExpress Editionで利用できないと思います。 ** alter database flashback on; **コマンドを実行すると、次のエラーが戻されます。* ORA-00439:機能が使用可能ではありません。または、機能が使用可能かどうかを確認するには、v ** database **からflashback_onを選択するだけです。 – glenneroo

関連する問題