Oracle update语句执行不了
updateapproved_maininfotsett.declareflag='y'where1=1andt.seqcode=263这是我的sql语句,放到plsql...
update approved_maininfo t set t.declareflag='y' where 1=1 and t.seqcode=263 这是我的sql语句,放到plsql中执行,不报错,一直在执行中,点击中断也无法中断,有知道为什么的吗?在线等......
展开
6个回答
展开全部
可能这个表被别的用户锁了;
select sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from v$locked_object lo, dba_objects ao, v$session sess
where ao.object_id = lo.object_id
and lo.session_id = sess.sid;
--杀掉会话
alter system kill session 'sid,serial#';
select sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from v$locked_object lo, dba_objects ao, v$session sess
where ao.object_id = lo.object_id
and lo.session_id = sess.sid;
--杀掉会话
alter system kill session 'sid,serial#';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能这一行数据,被别的 用户/会话 锁定了。
Oracle 多用户之间锁的处理
http://hi.baidu.com/wangzhiqing999/blog/item/43b64104ff39f300738b657c.html
Oracle 多用户之间锁的处理
http://hi.baidu.com/wangzhiqing999/blog/item/43b64104ff39f300738b657c.html
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能是更新的数据量太大了 造成死锁的原因
--查询表锁
SELECT /*+ rule */
lpad(' ', decode(l.xidusn, 0, 3, 0)) || l.oracle_username User_name,
o.owner,
o.object_name,
o.object_type,
s.sid,
s.serial#
FROM v$locked_object l, dba_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY o.object_id, xidusn DESC;
--下面的sid,serial#用上面的相应字段替换
ALTER system kill session 'sid,serial#';
--查询表锁
SELECT /*+ rule */
lpad(' ', decode(l.xidusn, 0, 3, 0)) || l.oracle_username User_name,
o.owner,
o.object_name,
o.object_type,
s.sid,
s.serial#
FROM v$locked_object l, dba_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY o.object_id, xidusn DESC;
--下面的sid,serial#用上面的相应字段替换
ALTER system kill session 'sid,serial#';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个UPDATE语句肯定是没任务问题的,关键是你的表数据,还有其它逻辑,或操作造成
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
肯定是被锁定了,如上。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询