Oracle中的当前隔离级别


Answers:


6

使用所引用的SO答案Vincent Malgrat的查询,这是如何获取正在进行的事务的事务隔离级别的方法:

SELECT s.sid, s.serial#,
   CASE BITAND(t.flag, POWER(2, 28))
      WHEN 0 THEN 'READ COMMITTED'
      ELSE 'SERIALIZABLE'
   END AS isolation_level
FROM v$transaction t 
JOIN v$session s ON t.addr = s.taddr AND s.sid = sys_context('USERENV', 'SID');

如果您尚未进行交易,则可以使用以下内容开始交易:

declare 
   trans_id Varchar2(100);
begin
   trans_id := dbms_transaction.local_transaction_id( TRUE );
end;
/

似乎会有比这更简单的方法。如果您正在寻找的话,我不知道如何获取会话的默认隔离级别。


5

-我正在使用类似下面的内容

用q1作为(从V $ SES_OPTIMIZER_ENV中选择SID来选择q1。*,vs .status,vs.username,vs.OSUSER,vs.MACHINE,vs.TERMINAL,vs.PROGRAM from q1,v $ session vs where q1.sid = vs.sid(+);

- 问候。-AZ

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.