오라클의 현재 격리 수준


10

Oracle에서 현재 (기본) 트랜잭션 격리 수준을 얻는 방법은 무엇입니까?



세션의 트랜잭션에 대한 기본 격리 수준 또는 진행중인 현재 트랜잭션의 격리 수준을 찾고 있습니까?
레이 리펠

답변:


6

Vincent Malgrat가 참조 한 SO 답변의 쿼리를 사용하여 진행중인 트랜잭션의 트랜잭션 격리 수준을 얻는 방법은 다음과 같습니다.

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;
/

이것보다 쉬운 방법이있는 것 같습니다. 원하는 것이 세션의 기본 격리 수준을 얻는 방법을 모르겠습니다.


5

-나는 아래와 같은 것을 사용하고 있습니다

q1을 다음과 같이 지정합니다 (V $ SES_OPTIMIZER_ENV의 SID, 널 (고유 이름, 기본값, 값, 디코드 (값, '직렬화 가능', SID, 널) 선택). .status, vs.username, vs.OSUSER, vs.MACHINE, vs.TERMINAL, vs.PROGRAM from q1, v $ session vs where q1.sid = vs.sid (+);

-감사합니다. -AZ

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.