SQL Developer需要单击“提交”按钮来验证我的查询。我的问题是我已经习惯了5年的自动提交(糟糕,我知道)并且我很难记住提交然后1)想知道为什么数据不会改变,2)最终锁定表因为未完成的交易。
是否有任何迹象表明某些未经通讯的内容
我更愿意关注UI反馈,如果有的话。
答案 0 :(得分:1)
试试这个:
select s.sid
,s.serial#
,s.username
,s.machine
,s.status
,s.lockwait
,t.used_ublk
,t.used_urec
,t.start_time
from v$transaction t
inner join v$session s on t.addr = s.taddr;
或者只是这个:
SELECT * FROM V$TRANSACTION WHERE STATUS='ACTIVE';
如果你有会话ID,那么你可以试试这个:
SELECT *
FROM v$session x
WHERE x.AUDSID = userenv('yoursessionid')
AND x.TADDR IS NOT NULL
答案 1 :(得分:1)
查看会话仍保持活动事务的方法之一是使用dbms_transaction Oracle包:
SQL> select dbms_transaction.local_transaction_id from dual;
LOCAL_TRANSACTION_ID
--------------------------------------------------------------------------------
SQL> update t set x = x;
3 rows updated.
SQL> select dbms_transaction.local_transaction_id from dual;
LOCAL_TRANSACTION_ID
--------------------------------------------------------------------------------
9.9.460109