ORACLE 里无法Drop Procedure
答案:2 悬赏:60 手机版
解决时间 2021-03-02 12:46
- 提问者网友:聂風
- 2021-03-01 17:56
ORACLE 里无法Drop Procedure
最佳答案
- 五星知识达人网友:洒脱疯子
- 2021-03-01 18:40
存储过程在执行过程中没执行完成,被锁定了吧。
你修改编译的时候卡死,这个时候就锁定了。
你后面drop当然也执行不成功。
解决方法:
先查找锁定的存储过程对应的sid,serial#
select s.sid,s.serial#
FROM
dba_ddl_locks l,v$session s
where l.name =upper('你的存储过程名称');
and s.sid=l.session_id;
2.知道sid和serial#后,杀死
alter system kill session '查出的sid,查出的serial#'
你修改编译的时候卡死,这个时候就锁定了。
你后面drop当然也执行不成功。
解决方法:
先查找锁定的存储过程对应的sid,serial#
select s.sid,s.serial#
FROM
dba_ddl_locks l,v$session s
where l.name =upper('你的存储过程名称');
and s.sid=l.session_id;
2.知道sid和serial#后,杀死
alter system kill session '查出的sid,查出的serial#'
全部回答
- 1楼网友:迷人又混蛋
- 2021-03-01 19:20
查询看看有没有死锁,
select * from v$lock;如果有死锁记录说明你的存储过程里面的事务未提交,要写commit;提交的,死锁了的线程要用楼上的语句,把线程关了.
如果没有死锁,你建一个空的存储过程试试,就是把里面的内容都注释了;如果还是卡死,在看看有没有编辑权限啥的!!如果问题都排除了,那及说明人品问题 哈哈
select * from v$lock;如果有死锁记录说明你的存储过程里面的事务未提交,要写commit;提交的,死锁了的线程要用楼上的语句,把线程关了.
如果没有死锁,你建一个空的存储过程试试,就是把里面的内容都注释了;如果还是卡死,在看看有没有编辑权限啥的!!如果问题都排除了,那及说明人品问题 哈哈
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯