Oracle Databaseで実行された各SQLファイルの元に戻す操作が必要な問題があります。
私はMSBuildを使用してxmlファイルでそれらを実行します-ログインと@ * .sqlを使用した実行コマンドsqlplus。
すでにコミットされたトランザクションをロールバックできないため、明らかにロールバックは機能しません。
数日間探し続けていますが、まだ答えが見つかりません。私が学んだのは、Oracle Flashback と Point in Time Recovery です。問題は、現在のユーザーに対してのみ変更を元に戻したいことです。つまり、別のユーザーが同時にいくつかの変更を行った場合、私のソリューションはユーザー ' X ' ではなく ' Y 'に対してのみ元に戻すことを実行します。
flashback_transaction_query で start_scn と commit_scn を見つけました。しかし、それは 1 人のユーザーだけを識別しますか? 特定のSCNにフラッシュバックするとどうなりますか? それは私だけを元に戻しますか、それとも他のユーザーも元に戻しますか? 取り出しました
flashback_transaction_query WHERE logon_user='MY_USER_NAME' から start_scn を選択します
と
WHERE table_name = "MY_TABLE NAME"
そして実行した
FLASHBACK TO SCN「その番号はこちら」
選択した操作の SCN で。それは私のために働くでしょうか?
ポイントインタイムリカバリについても知りましたが、読んだところ、データベース全体が利用できなくなり、他のユーザーはそれを操作できなくなります。
したがって、*.sql ファイル全体を元に戻すものが必要です。