Oracle表被鎖

前几天调试存储过程时,Oracle莫名报错,当存储过程执行到一段SQL时,怎么等也执行不过去,最后把这段sqlCOPY出来单独执行OK,当修改里面具体的一条记录时,提示表已被其他用户占用,原来如此,是Oracle的行锁啊!

**下面是俩种方法查找锁:
1. 可以用Enterprise Manager Console控制台,用System或Sys用户登录,登录后点锁,正常的情况下是没有任务锁的,非正常情况下会有相应被锁的信息;
登录后:
点击 例程 — 锁,下面过滤器选择:用户类型锁,就可以看到当前数据库锁的信息;

2. 因为Oracle是装在Linux下,所有可以用sql/plus命令方式进去看锁信息,具体操作如下:
su - oracle;
sqlplus /nolog;
conn system/密码; 或者 connect/as sysdba;
使用下面的语法查出锁:
SELECT A.SID,A.SERIAL#,A.USERNAME,B.TYPE FROM V$SESSION A,V$LOCK B WHERE A.SID=B.SID;

**解决办法:
1. 用Enterprise Manager Console控制台,选中后 右键 中断会话 — 立即 ,OK;
2. 用sql/plus命令杀掉进程,ALTER SYSTEM KILL SESSION 'SID,SERIAL#',OK;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值