【问题标题】:Can rollback after providing the commit operation [duplicate]提供提交操作后可以回滚[重复]
【发布时间】:2017-01-09 07:49:59
【问题描述】:

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

Delete from TC_trans;
Commit;

现在我想找回它。

【问题讨论】:

    标签: sql oracle


    【解决方案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

    【讨论】:

      【解决方案2】:

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

      但是,您可能能够访问已删除的数据,从而通过闪回查询来拯救它。例如:

      select * from tc_trans as of timestamp systimestamp - 0.1;
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-03
        • 1970-01-01
        • 2021-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多