這個該死的問題困擾了好久,多方分析之後,才知道,儲存過程編譯沒完成,或者編譯失敗時,oracle 資料庫會自動把相應的儲存過程鎖起來,最無賴的做法 是重啟資料庫,此問題就解決
每天重啟兩次資料庫想死的心都有了,經過今天的查詢 終於找的好的解決方法
一 , 找到之前除錯的儲存過程 名稱,使用一下語句找到 sid
select va.sid,va.object from v$access va where object like 'sp_%'
二 、拿到sid之後,去 v$session檢視 去查詢 sid,serial#
select sid,serial#,paddr from v$session where sid= 140
三、拿到 sid,serial# 之後就簡單了,直接殺死 session,儲存過程就可以重新編譯了
alter system kill session '140,10555'
Oracle儲存過程編譯卡死的解決方法
在oracle資料庫中重新修改編譯了某個儲存過程a呼叫的另乙個過程b後,需要手動將a重新編譯,一定不要在重新編譯a前去呼叫a,否則會造成a編譯掛死的情況。特別是在訪問量大的情況下。這種情況下如果強行終止儲存過程編譯,再次recompile儲存過程會發現還是掛死的,這個主要是由於強行終止後會話為ina...
Oracle儲存過程編譯卡死的解決方法
oracle儲存過程編譯卡死的解決方法 解決方法如下 1 查v db object cache select from v db object cache where name cux oe order rpt pkg and locks 0 注意 cux oe order rpt pkg 為儲存過...
oracle 儲存過程編輯 卡死
一 可用sys登入,二 查鎖session id 查詢儲存過程operationdata imp被哪些session鎖住而無法編譯 select from dba ddl locks where name upper operationdata imp 三 查出sid serial 解決辦法如下 如...