如题所述
第1个回答 2022-04-07
Oracle数据库通过快照回退表数据与启动表的行移动功能。
开发过程中难免会执行错脚本,尤其是脑子一卡没写where语句去执行了update操作,要是需要执行commit操作的话还好,但是有的Oracle连接工具并不需要执行commit操作,如DbVisualizer。
oracle表未启用行移动功能,不能回闪问题。被flashback回来rowid发生了变化,这也是为什么flashbacktable需要enablerowmovement的原因,正常情况表中数据的rowid是绝对不可以改变的。
开发过程中难免会执行错脚本,尤其是脑子一卡没写where语句去执行了update操作,要是需要执行commit操作的话还好,但是有的Oracle连接工具并不需要执行commit操作,如DbVisualizer。
oracle表未启用行移动功能,不能回闪问题。被flashback回来rowid发生了变化,这也是为什么flashbacktable需要enablerowmovement的原因,正常情况表中数据的rowid是绝对不可以改变的。