web-dev-qa-db-fra.com

Niveau d'isolement actuel à Oracle

Comment obtenir le niveau d'isolement de transaction actuel (par défaut) dans Oracle?

10
paweloque

Utilisation de la requête du SO Réponse Vincent Malgrat référencé, voici la manière dont vous pouvez obtenir le niveau d'isolement des transactions pour la transaction en cours:

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');

Si vous n'êtes pas déjà dans une transaction, vous pouvez en commencer une avec les éléments suivants:

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

On dirait qu'il y aurait un moyen plus facile que cela. Je ne sais pas comment obtenir le niveau d'isolement par défaut pour la session si c'est ce que vous recherchez.

6
Leigh Riffel