① oracle存儲過程名字報錯,但內容沒問題,運行編譯卻卡死!
1、查看一下Oracle資料庫中的正在運行的進程是否正在運行該程序,如果有的話把進程停止
2、全部關閉重開或者換一個PLSQL試一下,看看是不是PLSQL本身導致的問題
3、如果都不好用先嘗試重啟一下PLSQL所在的伺服器(如果可以重啟的話)
先試試上述方法
② oracle 編譯包的時候,一直提示正在編譯
編譯的存儲過程的時候,程序死住,等待一會出現ora-04021錯誤解決辦法:
1.可能被鎖住
查看v$lockedselect b.sid,b.serial#,b.machine,b.terminal,b.program,b.process,b.status from v$lock a , v$session b
where a.SID = b.SID
得到死鎖session的SID,SERIAL#參看這個是否為你自己用戶下的,然後kill掉session
2.可能被掛起
查看v$session_waitselect b.serial#,a.* from v$session_wait a,v$session
bwhere a.sid = b.sid得到等待的session的sid和serial#3.查看dba_ddl_locksselect
session_id sid, owner, name, type,
mode_held held, mode_requested request
from dba_ddl_locks
where name = '&your_package_name'
③ ORACLE 存儲過程無法編譯,編譯就卡死
你怎麼查的鎖?v$locked_object?dba_ddl_locks查了沒,可能是ddl的鎖,如果不能編譯,一編譯就死,也可能是ddl的鎖導致的,以前碰到過。如果能找到鎖,那就簡單了。
不過還碰到過一種特別扯淡的情況,關掉自己的連接,然後換一台電腦從新來過,就OK了,這種情況也碰到過。