Oracle数据库在UPDATE查询中无限悬挂

ern*_*313 10 sql oracle transactions oracle11g

突然我的更新查询没有执行.我可以进行 选择查询但是当我尝试更新记录时,数据库无限地挂起.我甚至尝试从sql plus,没有任何反应.

Adr*_*iro 27

很可能您为同一组记录设置了另一个未提交的事务,因此它们会被锁定以进行该事务.

并且,很可能,锁定了它们,UPDATE在另一个事务中运行相同的操作.

只需提交/回滚您的交易,您应该没事.

  • 是.是的.当你已经有一段时间并且你是初学者的教练时,你会得到那种强大的力量*有点的氛围,你知道他们的问题才能告诉你一切.:)当然,我并不总是对的. (3认同)
  • 现在****答案就是我称之为有根据的猜测;-) (2认同)

DCo*_*kie 16

此查询将显示阻止更新的人员.执行挂起的更新,然后在另一个会话中运行:

select s1.username || '@' || s1.machine ||
  ' ( SID=' || s1.sid || ' )  is blocking '
  || s2.username || '@' || s2.machine || ' ( SID=' || s2.sid || ' ) ' AS blocking_status
  from v$lock l1 join v$lock l2 on (l1.id1 = l2.id1 and l2.id2 = l2.id2) 
                 JOIN v$session s1 ON (s1.sid = l1.sid)
                 JOIN v$session s2 ON (s2.sid = l2.sid)
  WHERE l1.BLOCK=1 and l2.request > 0;
Run Code Online (Sandbox Code Playgroud)

编辑:

为了正确归因于此,看起来我从ORAFAQ回来了一段时间.