【发布时间】:2017-01-09 07:49:59
【问题描述】:
是否可以回滚已删除的记录,因为我的过程已从表中删除了记录。
Delete from TC_trans;
Commit;
现在我想找回它。
【问题讨论】:
是否可以回滚已删除的记录,因为我的过程已从表中删除了记录。
Delete from TC_trans;
Commit;
现在我想找回它。
【问题讨论】:
据我所知,您可以发出闪回查询来检索已删除的记录。下面给出示例供您参考。请检查发出此查询后是否检索到相应记录。
insert into v (select * from v as of timestamp(systimestamp - interval '60' minute));
您还可以发出减号查询,如下所示。
insert into v (select * from v as of timestamp(systimestamp - interval '60' minute)) minus select * from v;
请阅读完整的闪回语句以了解该概念。谢谢。
参考:http://docs.oracle.com/cd/B12037_01/appdev.101/b10795/adfns_fl.htm
【讨论】:
不,你不能。使用COMMIT,您已决定不回滚,而是提交。
但是,您可能能够访问已删除的数据,从而通过闪回查询来拯救它。例如:
select * from tc_trans as of timestamp systimestamp - 0.1;
更多关于闪回查询的信息:https://docs.oracle.com/cd/B19306_01/backup.102/b14192/flashptr002.htm。
【讨论】: