| T2 T1 | S | X | RS | RX | SRX | - |
| S | Y | N | Y | N | N | Y |
| X | N | N | N | N | N | Y |
| RS | Y | N | Y | Y | Y | Y |
| RX | N | N | Y | Y | N | Y |
| SRX | N | N | Y | N | N | Y |
| - | Y | Y | Y | Y | Y | Y |
表一:Oracle数据库TM锁的相容矩阵
一方面,当Oracle执行SELECT…FOR UPDATE、INSERT、UPDATE、DELETE等DML语句时,系统自动在所要操作的表上申请表级RS锁(SELECT…FOR UPDATE)或RX锁(INSERT、UPDATE、DELETE),当表级锁获得后,系统再自动申请TX锁,并将实际锁定的数据行的锁标志位置位(指向该TX锁);另一方面,程序或操作人员也可以通过LOCK TABLE语句来指定获得某种类型的TM锁。下表总结了Oracle中各SQL语句产生TM锁的情况:
| SQL语句 | 表锁模式 | 允许的锁模式 |
| Select * from table_name…… | 无 | RS、RX、S、SRX、X |
| Insert into table_name…… | RX | RS、RX |
| Update table_name…… | RX | RS、RX |
| Delete from table_name…… | RX | RS、RX |
| Select * from table_name for update | RS | RS、RX、S、SRX |
| lock table table_name in row share mode | RS | RS、RX、S、SRX |
| lock table table_name in row exclusive mode | RX | RS、RX |
| lock table table_name in share mode | S | RS、S |
| lock table table_name in share row exclusive mode | SRX | RS |
| lock table table_name in exclusive mode | X | 无 |
| 字段名称 | 类型 | 说明 |
| SID | NUMBER | 会话(SESSION)标识; |
| TYPE | VARCHAR(2) | 区分该锁保护对象的类型; |
| ID1 | NUMBER | 锁标识1; |
| ID2 | NUMBER | 锁标识2; |
| LMODE | NUMBER | 锁模式:0(None),1(null),2(row share), 3(row ) |