比如:A用户使用了SELECT * FROM TABLE1 WHERE FIELD1 = '123' FOR UPDATE.请问B用户如何知道TABLE1中哪些记录被锁住了?

解决方案 »

  1.   

    V$LOCK   和   V$LOCKED_OBJECT
      

  2.   

    查询哪些表被锁,可以用
    select * from v$locked_object a,v$session b where a.SESSION_ID=b.SID;
    来查看
    查询被锁的具体记录,没找到好的方法
      

  3.   

    查看表被锁: select * 
      from v$locked_object t, v$session s
     where t.SESSION_ID = s.SID
      

  4.   

    oracle 只能锁表,没听说能锁记录.把表锁住后就锁住记录了
      

  5.   

    参考http://hi.baidu.com/yuanhotel/blog/item/3e011edd19387adf8c1029cd.html
      

  6.   

    这个查看表被锁以及哪个session死锁都是可以的,但是涉及到具体的记录行,就有点困难了吧!