Mức cô lập hiện tại trong orory


10

Làm thế nào để có được mức cô lập giao dịch (mặc định) hiện tại trong orory?


Nếu bạn đang tìm kiếm mức cô lập hiện tại của một phiên, hãy xem câu hỏi SO này: Làm thế nào bạn có thể thấy mức cô lập giao dịch mà một phiên orory tùy ý đang sử dụng.
Vincent Malgrat

Bạn đang tìm kiếm mức cô lập mặc định cho các giao dịch trong một phiên hoặc mức cô lập của giao dịch hiện tại đang diễn ra?
Leigh Riffel

Câu trả lời:


6

Sử dụng truy vấn từ câu trả lời SO được Vincent Malgrat tham chiếu, đây là cách bạn có thể nhận được mức cô lập giao dịch cho giao dịch đang diễn ra:

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

Nếu bạn chưa có giao dịch, bạn có thể bắt đầu một giao dịch sau:

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

Có vẻ như sẽ có một cách dễ dàng hơn thế này. Tôi không biết làm thế nào để có được mức cô lập mặc định cho phiên nếu đó là điều bạn đang tìm kiếm.


5

- Tôi đang sử dụng một cái gì đó như dưới đây

với q1 là (chọn tên riêng, isdefault, value, decode (value, 'serializable', SID, null) SID từ V $ SES_OPTIMIZER_ENV trong đó (tên) như '% cô lập%' theo tên) chọn q1. *, vs. .status, vs.username, vs.OSUSER, vs.MACHINE, vs.TERMINAL, vs.PROGRAM từ q1, v $ session so với nơi q1.sid = vs.sid (+);

-- Trân trọng. - AZ

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.