回答:
参照されている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;
/
これより簡単な方法があるようです。それがあなたが探しているものである場合、セッションのデフォルトの分離レベルを取得する方法がわかりません。
-私は以下のようなものを使用しています
q1として(個別の名前を選択、isdefault、value、decode(value、 'serializable'、SID、null)SID V $ SES_OPTIMIZER_ENV where where(name)like '%isolation%' order by name)select q1。*、vs .status、vs.username、vs.OSUSER、vs.MACHINE、vs.TERMINAL、vs.PROGRAM from q1、v $ session vs where q1.sid = vs.sid(+);
-よろしく。-AZ