max*_*zig 3 oracle oracle-sql-developer session
假设您在 SQL Developer 中并想检查当前用户会话(即您的连接)是否有未提交的更改。
如果您退出 SQL Developer,它会进行这样的检查并显示一个对话框如何继续。我想在不退出的情况下检查它 - 例如通过执行特殊的 SQL 语句或 SQL Developer 操作。
理想情况下,如果可以配置 SQL Developer,以便在当前会话是“脏的”(即有未提交的更改)时直观地指示它,那就太好了——例如,通过在工作表周围显示红色边距。
你可以查一下V$TRANSACTION
。下面是一个例子:
create table t(a number);
Table created.
insert into t values (1);
1 row created.
select t.status
from v$transaction t
join v$session s
on t.ses_addr = s.saddr
where s.sid = sys_context('USERENV', 'SID');
STATUS
----------------
ACTIVE
Run Code Online (Sandbox Code Playgroud)
提交后:
commit;
Commit complete.
select t.status
from v$transaction t
join v$session s
on t.ses_addr = s.saddr
where s.sid = sys_context('USERENV', 'SID');
no rows selected
Run Code Online (Sandbox Code Playgroud)
对于这一点,你必须授予SELECT
对特权SYS.V_$TRANSACTION
和SYS.V_$SESSION
虽然。
还有
SELECT dbms_transaction.local_transaction_id FROM dual;
Run Code Online (Sandbox Code Playgroud)
如果有挂起的提交,它将显示一个事务 ID。
归档时间: |
|
查看次数: |
12646 次 |
最近记录: |