Oracle - v$sql 确定 sql 命令是否已提交

use*_*710 5 oracle

大家都知道v$sql/ v$sql_text/v$sqlarea等包含SQL命令列表最近执行的。

好吧,我想知道执行某个 sql 命令的事务是否已回滚/提交或可能仍在进行中,并且可能还知道提交时间。

我尝试使用 v$session 等加入它,但找不到任何有用的东西。帮助将不胜感激。

如果有某种方式可以将其v$sql视为事务性的,那么另一件事可能会对我有所帮助。也就是说,只有当运行 sql 命令的事务被提交时,该信息才对 v$sql 表中的其他会话可见。

谢谢

ste*_*eve 3

您忽略了基本问题:您实际上想要实现什么目标?

v$sql视图基于x$表,它不是事务性的。要确定当前执行的事务是否已提交,可以使用事务防护。但一般来说,应用程序应该非常清楚事务是否完成或回滚。