查询Oracle数据库表是否被锁
1、查询锁表的会话、人员等信息
1 | select * from v$locked_object; |
2、根据 object_id查询被锁的表名
1 | select * from user_objects where object_id = 819556; |
3、根据会话ID查询本地进程
1 | select * from v$session where sid = 1706; |
根据PID停止进程
4、查看表被锁的行
1 | select * from 表名 for update skip locked; |
在尝试加锁之前判断记录是否已经被其他用户锁定,如果已经锁定,这跳过该已锁订记录,如果没有被锁定,就锁定该没有被锁定的记录。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。