2014-02-26 40 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