现象:
在oracle执行存储过程,同时在后台代码里执行,报出了“ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效”的错误,原因是短时间内对表操作太过快速和频繁而导致的数据库锁表。即由于其他Session已经对目标表做了操作,并且已经有排他锁在表上了,所以新的Session无法再对表进行DDL操作。
解决:
用system登录
--1.查询被锁的会话ID
select session_id from v$locked_object; --509
--2.查询上面会话的详细信息
SELECT sid, serial#, username, osuser FROM v$session where sid = 509;
--3.将上面锁定的会话关闭
ALTER SYSTEM KILL SESSION '509,45605';
之后就可以重新操作表