Reputation: 41
How do I check what IL is being set in my oracle DB. How do I change it? Many thanks in advance.
Upvotes: 4
Views: 7571
Reputation: 659
To Set Isolation Level
For Read only Transaction isolation level
Isolation Levels can be set as For Transaction level:
SET TRANSACTION ISOLATION LEVEL READONLY;
For Session level:
ALTER SESSION SET ISOLATION_LEVEL READONLY;
For Serializable Transaction isolation level
Transaction level:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
Session level:
ALTER SESSION SET ISOLATION_LEVEL SERIALIZABLE;
For Read Committed Transaction isolation level
Transaction Level:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
Session Level:
ALTER SESSION SET ISOLATION_LEVEL READ COMMITTED;
To find the Isolation Level:
When Transaction is in Progress:
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');
When the transaction is not in process
declare
trans_id Varchar2(100);
begin
trans_id := dbms_transaction.local_transaction_id( TRUE );
end;
Upvotes: 2