可以在提交提交操作后回滚

时间:2017-01-09 07:49:59

标签: sql oracle

是否可以回滚已提交的已删除记录,因为我的程序已从表中删除了记录。

Delete from TC_trans;
Commit;

现在我想要找回它。

2 个答案:

答案 0 :(得分:1)

据我所知,您可以发出闪回查询来检索已删除的记录。下面给出示例供您参考。请在发出此查询后检查是否检索到相应的记录。

实施例

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

答案 1 :(得分:1)

不,你不能。使用COMMIT,您已决定回滚,但提交。

但是,您可以访问已删除的数据,从而使用闪回查询进行抢救。 E.g:

select * from tc_trans as of timestamp systimestamp - 0.1;

有关闪回查询的更多信息,请访问:https://docs.oracle.com/cd/B19306_01/backup.102/b14192/flashptr002.htm