Lock modes: 0, None 1, Null (NULL) 2, Row-S (SS) 3, Row-X (SX) 4, Share (S) 5, S/Row-X (SSX) 6, Exclusive (X) ********************************************************************* DMLs cause TX 6 and TM 3 locks: insert,update,delete SQL> select * from v$lock where type not in ('MR','RT','KT'); ADDR KADDR SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK -------- -------- ---------- -- ---------- ---------- ---------- ---------- ---------- ---------- 02596D48 02596E30 7 TX 131088 3329 6 0 1298 0 8586110C 85861120 7 TM 96843 0 3 0 1298 0 rollback; ********************************************************************* SELECT FOR UPDATE (with or without NOWAIT) causes TX 6 and TM 2 locks: SQL> select * from v$lock where type not in ('MR','RT','KT'); ADDR KADDR SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK -------- -------- ---------- -- ---------- ---------- ---------- ---------- ---------- ---------- 02594298 02594380 7 TX 524308 3306 6 0 1 0 8586110C 85861120 7 TM 96843 0 2 0 1 0 ********************************************************************* DX (distributed transaction) locks are not seen if the database link is a loopback link (link to the current database itself), and only seen if the distributed transaction (or query) is still running, i.e. v$session.status = 'ACTIVE' (except for current session where DX lock is always seen). And these DX locks are in mode 1. If your database is version 9.0.1 or older and has MYLINK connecting to another database of any version, you SELECT * FROM DUAL@MYLINK and look at v$lock where type = 'DX' in your own session, you'll see your current session holding a DX lock in mode 4. But the mode is 6 if your database is 9.2. In 10g, it's back to mode 4 again!