ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效

1、问题描述sql

今天在用hibernate进行建表操做时第一次建表成功,但以后发现POJO类的映射文件有问题,就进行了几回修改,之间将建表的代码又运行了几回,结果就在控制台报出了“ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效”的错误,数据也插入不了,因而我就去oracle数据库的可视界面(sqldeveloper)想将以前建成的表手动删除,结果仍是报“ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效”这个错误,以后才搞清楚原来是对表的操做短期内太过快速和频繁而致使的数据库锁表。即因为其余Session已经对目标表作了操做,而且已经有排他锁在表上了,因此新的Session没法再对表进行DDL操做。数据库

2、解决方法session

在system登陆的状况下执行以下操做:oracle

1.查询被锁的会话ID:spa

select session_id from v$locked_object;

查询结果:SESSION_ID-------9.net

 

2.查询上面会话的详细信息:hibernate

SELECT sid, serial#, username, osuser FROM v$session where sid = 9;

查寻结果:3d

3.将上面锁定的会话关闭:code

ALTER SYSTEM KILL SESSION '9,99';

执行结果:blog

4.锁定的会话关闭成功以后对以前的表就能够执行想要的操做了。

 

来自:https://blog.csdn.net/qq_37151235/article/details/74612957

相关文章
相关标签/搜索