오라클의 현재 격리 수준


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.