Oracle11g Oracle存储点

Oracle11g Oracle存储点,oracle11g,savepoints,Oracle11g,Savepoints,我知道,当您将Oracle DB回滚到某个保存点时,在该原始保存点之后标记的任何保存点都将被擦除,但自该保存点回滚以来,是否所有提交的事务都已回滚?这是对数据库的完全倒叙吗?我想是的,只是想澄清一下。非常感谢。如果您提交了事务,那么在此之前的所有保存点都将无效,因此“所有提交的事务,因为该保存点也已回滚”实际上没有意义。你永远不能回滚一个提交 : 将ROLLBACK与TO SAVEPOINT子句一起使用可执行以下操作: 仅回滚保存点之后的事务部分。它不会结束交易 擦除在该保存点之后创建的所有保

我知道,当您将Oracle DB回滚到某个保存点时,在该原始保存点之后标记的任何保存点都将被擦除,但自该保存点回滚以来,是否所有提交的事务都已回滚?这是对数据库的完全倒叙吗?我想是的,只是想澄清一下。非常感谢。

如果您提交了事务,那么在此之前的所有保存点都将无效,因此“所有提交的事务,因为该保存点也已回滚”实际上没有意义。你永远不能回滚一个提交

:

将ROLLBACK与TO SAVEPOINT子句一起使用可执行以下操作:

  • 仅回滚保存点之后的事务部分。它不会结束交易
  • 擦除在该保存点之后创建的所有保存点。命名的保存点将被保留,因此您可以多次回滚到同一保存点。以前的保存点也会保留
在你的问题中使用“所有交易”是令人困惑的。事务和保存点仅适用于单个会话-其他会话中的任何事务都不受您在会话中执行的任何回滚的影响

将会话回滚到某个保存点会删除同一会话中“在该原始保存点之后标记的所有保存点”,因此这些保存点位于同一事务中。它不会影响任何其他会话中的任何事务或保存点,并且当前事务仍处于活动状态

所以不,这不是数据库的完全倒叙,但保存点是完全不同的事情


.

这完美地解释了一切。谢谢。