Oracle表鎖或行鎖問題解決辦法

2021-07-17 04:09:05 字數 748 閱讀 8886

今天在除錯業務問題的時候,剛開始insert除了資料不對其他倒是沒問題,經過不斷修改**,不斷除錯,最後悲劇發生了,當執行到某一條insert語句的時候,一直執行不下去,將這條sql語句摘出來在plsql中執行,發現一直在執行中,強行結束後報出兩個觸發器的錯誤,不明所以,最後發現不知道哪位高手改了觸發器沒有編譯(經常出現這種問題,不想吐槽了),將觸發器編譯後還是會卡在這個地方,在plsql中test單步除錯後,最後發現卡在乙個觸發器中,關鍵是這個觸發器第一行就return掉了,什麼也沒執行,然後就卡在那,實在摸不著頭腦,鬱悶的找了半天,最後在同事中找到了共鳴。

因為oracle表鎖或行鎖的問題,至於怎麼發生的,我猜測是我在執行的時候有人在修改觸發器,導致了悲劇,解決辦法如下:       

declare cursor mycur is  

select b.sid,b.serial#

from v$locked_object a,v$session b

where a.session_id = b.sid group by b.sid,b.serial#;

begin

for cur in mycur

loop

execute immediate ( 'alter system kill session '''||cur.sid || ','|| cur.serial# ||''' ');

end loop;

end;

oracle鎖表問題解決方法

詳見 oracle資料庫操作中,我們有時會用到鎖表查詢以及解鎖和kill程序等操作,那麼這些操作是怎麼實現的呢?本文我們主要就介紹一下這部分內容。鎖表查詢的 有以下的形式 select count from v locked object select from v locked object 檢視...

oracle鎖表問題解決方法

詳見 url oracle資料庫操作中,我們有時會用到鎖表查詢以及解鎖和kill程序等操作,那麼這些操作是怎麼實現的呢?本文我們主要就介紹一下這部分內容。鎖表查詢的 有以下的形式 select count from v locked object select from v locked objec...

Oracle表鎖與行鎖

1 登入資料所在的資料庫 用管理員賬戶登入 2 查詢是否存在鎖表的sql 3 進行表鎖sql 共享方式的表級鎖 share lock table 表 表 inshare mode nowait lock table test user in share mode 獨佔方式表級鎖 exclusive ...