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