Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment pouvez-vous voir quel niveau d'isolation de transaction une session Oracle arbitraire utilise

Vous pouvez tester le bit 28 dans le flag colonne dans v$transaction [1] .

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, v$session s
WHERE t.addr = s.taddr
  AND s.sid = :sid
  AND s.serial# = :serial;

N'oubliez pas que v$transaction répertorie uniquement les transactions actives [2] ; par exemple, vous devez émettre une insertion/mise à jour/suppression/fusion, ou utiliser "pour la mise à jour"[3] .