今天進行項目開發時,爲了測試項目中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';