如果提交了,可以使用数据库闪回, 非常简单
--得到一个当前序列号.
select dbms_flashback.get_system_change_number scn from dual
--7827319是序列号
select * from table as of scn 7827319
你可以慢慢减序列号,直到你能查询到数据.
例如, 我删除数据提交, Oracle会给这个 *** 作一个序列号. 然后每一次 *** 作都会生成序列号.
你用 as of scn 序列 查询时, 查询当时那个 *** 作的数据情况.
数据库删除了数据是一个很棘手的问题,数据的删除首先包括三个层面:
1.删除放入回收站,没有在回收站中清除数据。这种情况是最简单的,进入回收站,找到删除的数据,右击选择恢复。
2.删除后未放入回收站或者删除后清空回收站,尽量先不要往原数据所在盘符下储存内容,刚刚删除的数据只是文件结构被删除,真正的文件数据还没被覆盖。通过数据恢复软件是可以找回来的,专业的软件例如有超级兔子数据恢复软件。
3.如果是删除很久以后才想到数据库数据要恢复,并且磁盘一直在使用,磁盘被填满的话数据就已经被覆盖了,这样的数据是无法找回的。
你这个属于执行了delete *** 作但是最后没有进行commit *** 作
commit就是提交的意思,意思是对你delete语句提交到数据库
如果不进行这个 *** 作的话,只在当前的session有效
也就是说你退出数据库后,数据还都在库里
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)