今天進行項目開發時,為了測試項目中SQL執行效果,就用PLSQL Developer執行了一下,沒有commit就繼續敲代碼了,之后重新使用PLSQL Developer時,可能是網絡原因,PLSQL Developer斷開了與數據庫連接並且卡死,便強制結束了。代碼敲完后進行測試,項目執行后沒效果,並且無響應,debug后發現jdbc執行SQL時沒反應了,問了一下谷老師才找到原因。
由於在PLSQL Developer執行update時沒有commit,oracle將該條記錄鎖住了。
可以通過以下辦法解決:
先查詢鎖定記錄
Sql代碼
SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;
然后刪除鎖定記錄
Sql代碼
ALTER system KILL session 'SID,serial#';
其中 SID填寫上文中查到的SID數值,serial#填寫serial#列的數值如:
ALTER system KILL session '214,23456';