控制台报出了“ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效”的错误,数据也插入不了,于是我就去oracle数据库的可视界面(sqldeveloper)想将之前建成的表手动删除,结果还是报“ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效”这个错误,之后才搞清楚原来是对表的操作短时间内太过快速和频繁而导致的数据库锁表。即由于其他Session已经对目标表做了操作,并且已经有排他锁在表上了,所以新的Session无法再对表进行DDL操作。
二、解决方法
在system登录的情况下执行如下操作:
1.查询被锁的会话ID:
select session_id from vKaTeX parse error: Expected 'EOF', got '#' at position 73: …ECT sid, serial#̲, username, osu…session where sid = 9;
查寻结果:
3.将上面锁定的会话关闭:
ALTER SYSTEM KILL SESSION ‘9,99’;
执行结果:
4.锁定的会话关闭成功之后对之前的表就可以执行想要的操作了。