oracle锁表查询和解锁方法
## Oracle 锁表查询和解锁方法
Oracle数据库是当今最流行的关系型数据库系统,其中有一种十分重要的特性就是它可以锁定数据库表,防止别人修改该表的内容,又被称为并发控制。下面我们分别来看看Oracle中查询和解锁表的方法:
### 一、Oracle中查询锁表方法
1. 使用系统内置函数查询锁表
  - 以DBA权限登录,使用“select * from v$lock;”查询锁表状态;
  - 使用“SELECT l.sid, l.type, l.mode, l.id1, s.username, s.osuser, s.machine FROM v$lock l, v$session s WHERE l.sid=s.sid;”查询出锁表具体信息,以便确定锁表的具体情况和引起表锁定的原因。
2. 使用dba_dml_locks视图查看锁表
  - 以DBA账号登录,使用“select * from dba_dml_locks;”命令查看锁表的状态;
  - 使用“select * from dba_dml_locks where name='表名' and mode_held='锁定模式';”命令查看表名称以及表上锁定的模式。
### 二、Oracle中解锁表方法
1. 强制执行表解锁:
oracle登录命令
  - 使用“ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;”命令强制杀死会话占用表的会话,以释放表上的锁定;
  - 使用“select * from v$lock;”命令查询是否成功释放表的锁定。
2. 将表上锁定的模式转换
  - 使用Oracle的“alter system 的 kill session 命令”可以将表上的锁定模式转换,将表上的某个类型的锁定模式被另外一种更安全的锁定模式替换;
  - 使用“Select * from v$lock;” 命令查询是否转换成功