undo нужен самому ораклу как раз для того, чтобы хранить все изменения до Commit, и следовательно было можно их откатить до commit-а, либо в случае если система грохнулась (опять таки до коммита).
В оракле есть arclogs, то есть обычный журнал транзакций. Используя его и используя бэкап, можно восстановить копию и докатить ее до определенного состояния используя эти arclogs (зависит от объема и когда был сделан бэкап).
В вашем случае действительно flashback может помочь.
Переводите Оракл в flasback режим, создаете grp (guarantee restore point) и выполняете любые действия. Если что не так - flashback to restore point.
Перевод оракл в flashback и обратно и флешбек на рестор поинт, в отличие от восстановления из бэкапа, очень быстрая операция.
А создание GRP вообще мгновенно и онлайн.
Но в режиме flashback генерятся дополнительные логи.
Обычно flashback удобен в девелопмент базе, или во время релиза.