sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo puede ver qué nivel de aislamiento de transacciones está utilizando una sesión de Oracle arbitraria?

Puede probar el bit 28 en la flag columna en 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;

Solo recuerda que v$transaction solo enumera transacciones activas [2] ; por ejemplo, necesita emitir/actualizar/eliminar/combinar, o usar "para actualizar"[3] .