1.查看是哪一个存储过程被锁住
查V$DB_OBJECT_CACHE视图
select * from V$DB_OBJECT_CACHE where owner='过程的所属用户' AND LOCKS!='0'

2.查看是哪一个sid,通过sid可以知道是哪一个session
查v$access视图
select * from v$access where owner='过程的所属用户' and name='刚才查到的过程名'
3.查出sid和serial#
查v$session视图
select sid,serial#,paddr from v$session where sid='刚才查到的sid';
查v$process视图
select spid from v$process where addr='刚才查到的paddr';
4.杀进程
4.1先杀oracle进程
alter system kill session '查出的sid,查出的serial#';
4.2再杀操作系统进程
如果是unix
kill -9 刚查出的spid
如果是windows
orakill 刚查出的sid 刚查出的spid

http://www.cnblogs.com/zwl715/p/3699124.html

原因: 存储过程执行过程中,关闭或者中断存储过程,重新编译是等待时间很长,无法删除

解决:

先查出被锁定存储过程的spid

SELECT spid

FROM V$DB_OBJECT_CACHE   OC,

V$OBJECT_DEPENDENCY OD,

DBA_KGLLOCK         W,

V$SESSION           S,

V$PROCESS           P

WHERE OD.TO_OWNER = OC.OWNER

AND OD.TO_NAME = OC.NAME

AND OD.TO_ADDRESS = W.KGLLKHDL

AND W.KGLLKUSE = S.SADDR

AND P.ADDR = S.PADDR

AND OC.NAME = 'SP_PS_DATAWWTPFLOWSUM_U'//存储过程名称

登陆被锁定存储过程所属Oracle的安装服务器, 开始->运行->CMD ,输入格式 orakill SID实例 SPID如:C:\>orakill orcl 540

http://www.cnblogs.com/zwl715/p/3699120.html

如何检测被锁住的Oracle存储过程及处理办法汇总(转)的更多相关文章

  1. 如何检测被锁住的Oracle存储过程

    今天遇到了这个情况,然后在网上找了到了这篇文章,借鉴过来做参考吧! 1.查看是哪一个存储过程被锁住 查V$DB_OBJECT_CACHE视图 select * from V$DB_OBJECT_CAC ...

  2. Oracle“记录被另一个用户锁住” 无法更新删除的解决办法

    1.查看数据库锁,诊断锁的来源及类型: select object_id,session_id,locked_mode from v$locked_object; 或者用以下命令: select b. ...

  3. 查看解决Oracle对象锁住的问题

    在编译的一个存储过程的时候,对象可能由于被锁住而处于假的卡死状态,这个时候有的是因为,这个过程正在运行中,所以无法编译: 上次我遇到一次,我很清楚的确定这个过程没有运行,可以我就是无法编译,对象一直被 ...

  4. 查看Oracle数据库被锁住的表,删除锁表的进程

    锁表处理及查询 查看Oracle数据库被锁住的表,删除锁表的进程 1.查看被锁住的表 SELECT dob.object_name table_name,    lo.locked_mode, lo. ...

  5. Oracle使用——oracle表锁住,杀掉锁表进程

    背景 在操作Oracle时,多人同时操作oracle数据库的同一张表的时候,经常会造成锁表现象,这时需要手动进行解锁. 步骤 以dba身份登录Oracle数据库(否则用户缺少杀掉进程权限,需要给用户分 ...

  6. oracle中记录被另一个用户锁住的原因与解决办法

    oracle数据中删除数据时提示“记录被另一个用户锁住” 解决方法: 1.查看数据库锁,诊断锁的来源及类型: select object_id,session_id,locked_mode from ...

  7. 解决oracle 表被锁住问题

    想修改Oracle下的某一张表,提示 "资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效" 看上去是锁住了. 用系统管理员登录进数据库,然后 SELECT sid, ...

  8. oracle中表记录被另一个用户锁住

    应用场景 在查询oracle表时,提示表记录被另一个用户锁住了 有可能是在使用了pl/sql工具后修改某个表记录时,加锁,或者发生故障异常退出,下次登录进去修改不了 查询锁 --查看数据库的锁的来源. ...

  9. oracle数据中记录被另一个用户锁住

    原因:PL/SQL里面执行语句执行了很久都没有结果,于是中断执行,于是就直接在上面改字段,在点打钩(记入改变)的时候提示,记录被另一个用户锁住. 解决方法: 第一步:(只是用于查看哪些表被锁住,真正有 ...

随机推荐

  1. android.graphics.Color

    该类定义的都是些static常量和函数,这些函数都是为了创建和转化成int型的color.颜色是由int型的数表示,由4个字节组成,分别是A R  G  B,这个int型的值是确定的,透明度的值只能存 ...

  2. phabricator在mac上的搭建(转)

    环境:OS X Yosemite 10.10.5 前提:phabricator主要是由php写的,而且是以website方式运行的,所以mac上要先安装好 php + nginx(或apache) + ...

  3. C++ 可以多个函数声明

    c/c++可以有多个函数声明,但实现只能有一个 例子: //file t_defs.h #ifndef _T_DEFS_H_ #define _T_DEFS_H_ void say(void); #e ...

  4. Swift - 多行文本输入框(UITextView)的用法

    1,多行文本控件的创建 1 2 3 4 var textview=UITextView(frame:CGRectMake(10,100,200,100)) textview.layer.borderW ...

  5. Types of Windows

    The Window's Real Estate   Application's Instance   A window is referred to as parent when it can be ...

  6. android之JSON 进行网络数据交换

    什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同一时候也易于机器解析和生成,很适合于server与client的交互. J ...

  7. grep命令参数和使用方法

    功能说明:查找符合串的条件的文件. 语言 法国:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

  8. 整理自百度知道提问的几道Java编程题

    蚂蚁爬杆 问题描述: 有一根27厘米的细木杆,在第3厘米.7厘米.11厘米.17厘米.23厘米这五个位置上各有一只蚂蚁.木杆很细,不能同时通过一只蚂蚁.开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝 ...

  9. Java生成目录

    Java生成目录 1.说明 推断目录是否存在,假设不存在就创建该目录.并打印其路径.假设存在,打印其路径 2.实现源代码 /** * @Title:BuildFolder.java * @Packag ...

  10. WeText项目的服务端

    WeText项目的服务端 在<WeText项目:一个基于.NET实现的DDD.CQRS与微服务架构的演示案例>文章中,我介绍了自己用Visual Studio 2015(C# 6.0 wi ...