2014-02-26 38 views
1

我創建了一個函數和過程,函數在過程中調用。根據函數的輸出,在我將數據插入其他表的過程中。現在該過程沒有執行也沒有被丟棄。如果我在SQL開發人員或cmd中嘗試其中任何一個,它就會運行並且沒有來自db的響應。無法刪除程序

DROP PROCEDURE proc_insert_data; 

Sql開發人員只是在那裏連續運行無限的時間。 我檢查了user_objects和all_objects:對象ID爲空,它是無效的。

+0

並且在您的SQL數據庫上,如果您運行sp_who2,您是否看到任何連接?您將需要殺死234個例子。 – Leptonator

回答

1

也許你的程序被一些尚未完成的會話鎖定。在你的情況下,我想,commit操作沒有在另一個會話中完成。

您可以通過此檢查阻塞會話:

SELECT 
    s.blocking_session, 
    b.username blocking_username, 
    b.osuser blocking_osuser, 
    s.sid, 
    s.serial#, 
    s.seconds_in_wait, 
    s.username 
FROM 
    v$session s, 
    v$session b 
WHERE 
    s.blocking_session = b.sid 
order by s.seconds_in_wait desc; 

然後,您承認在會議結束後,你可以輕易殺死,或詢問您的管理員這樣做。

+0

謝謝..它幫助我瞭解真正的問題..但隨着查詢我dint得到任何數據..而且我真的得到了什麼查詢提取..可以請你更精細 – Naveen

+0

所以,在視圖' v $ session'有一個'blocking_session'列,它表示阻止你的「會話」的會話ID,該會話正在丟棄該過程。如果它什麼都沒有返回,也許你另外嘗試的方式是重新啓動數據庫,當然如果可能的話。 – smnbbrv

+0

重啓數據庫是不可能的......有沒有其他方法? – Naveen