ora-04021 锁问题求解! 实在搞不定了 求救

lsqkeke 2006-11-09 06:48:39
问题描述:

我对数据库中的一个表加了两个字段后,需要重编译失效的存储过程.
但与此表无关的两个函数却编译不通过,报 ora04021错误,等待锁定对象:函数名 发生超时错误.
而我查看该函数引用的对象,全部有效.
通过: sys 用户 执行
select 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
查出 b.sid,b.serial#
2 1
5 1
但这不是用户会话,无法用: alter system kill session '5,1'; 杀掉

我甚至用sys登录 sqlplus 将数据库用户下的所有session kill 掉,
然后该函数仍旧编译不通过, 并且也删除不掉,报出同样的 ora-04021 错误

我实在没语言了 !


大家 帮忙先啊
...全文
1038 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
多壮志 2006-11-09
  • 打赏
  • 举报
回复
如果是Kill session,最好的方法,我的是登录Oem,然后直接在会话窗体中kill 掉。百分之百可以。
mayongzhi 2006-11-09
  • 打赏
  • 举报
回复
登录ORACLE管理平台在会话中查找锁表的进程的系统pid ,如果是UNIX 则kill 该pid -9
如果是windows 则ntsd -c q -p PID 来强制关闭进程。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧