当前位置:  开发笔记 > 编程语言 > 正文

如何判断我在Oracle事务中是否有未提交的工作?

如何解决《如何判断我在Oracle事务中是否有未提交的工作?》经验,为你挑选了2个好方法。

有没有办法告诉我在交易中是否有未提交的工作(即DML)?也许我可以查询数据字典视图?

从运行开放事务的会话的内部和外部发现这一点的方法将是受欢迎的.

谢谢



1> Gary Myers..:

如果您无权访问v $ session,则可以使用

select dbms_transaction.local_transaction_id from dual;

这仅适用于会话内但不需要v $权限.如果它返回非null,则表明您已启动事务.这通常意味着未提交的更改,但也有例外.如果您发出了保存点,更改了数据并回滚到保存点,则事务仍然"存在".此外,使用数据库链接可以启动事务,甚至只是选择(或曾经使用过).



2> Quassnoi..:
SELECT  *
FROM    v$session v
WHERE   v.AUDSID = userenv('sessionid')
    AND v.TADDR IS NOT NULL

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有