Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como você pode ver qual nível de isolamento de transação uma sessão de oráculo arbitrária está usando


Você pode testar o bit 28 no flag coluna em 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;

Apenas lembre-se de que v$transaction lista apenas transações ativas [2] ; por exemplo, você precisa emitir um insert/update/delete/merge ou usar "for update"[3] .