最好办法验证:
begin
update table_name set ....;
dbms_output.put_line(sql%rowcount);
end;
/

解决方案 »

  1.   

    表A有几千条记录,但其中有两条记录不能更新,而在v$locked_object中该表并没有
    被锁定,该如何解决,谢谢
    那时这两条记录不符合更新条件,请自己检查或把更新条件和没更新的两条记录贴出来。
      

  2.   

    查看v$session_wait看在等什么,有可能在等rollback/undo segment,有可能在等free ITLs ...
      

  3.   

    应该是你前面有更新过这两条记录,而没有commit它们,所以要再更新它们就被锁定了,可以先commit,就可以再更新了。
      

  4.   

    我的数据库有N个应用程序访问啊(电信系统),而且是并行服务器,我在v$locked_objected,v$session_wait也找不到相关信息,既不能commit也不能kill,该怎么办
      

  5.   

    可以通过alter system kill session ‘sid,serial#’来杀掉会话 SELECT /*+ rule */ s.username,  decode(l.type,'TM','TABLE LOCK',                'TX','ROW LOCK',                NULL) LOCK_LEVEL,  o.owner,o.object_name,o.object_type,  s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser  FROM v$session s,v$lock l,dba_objects o  WHERE l.sid = s.sid  AND l.id1 = o.object_id(+)  AND s.username is NOT NULL