是不是有人对该行执行了select ... for update?

解决方案 »

  1.   

    是不是9i,我曾经碰到类似的问题,原因是我插入数据时出现错误,那么这条数据再也无法插入,无法删除,一执行就好像死掉了。可以肯定有其他的session曾经操作过该条数据,可能发生一些错误,导致book错误,只能把另外一个session强行kill掉,估计就可以delete 了。
      

  2.   


    V$lock/V$locked_object就可以确定了
      

  3.   

    是Oracle8.0.5,我猜想也应该是锁定的缘故,但就是解决不了
      

  4.   

    查查那个Session锁表了,将它kill掉就可以了.
      

  5.   

    非解锁不可了,找到锁定该记录的session,kill掉。
      

  6.   

    我也认为是锁了,可是我找遍了,也没有找到锁。
       最主要的是,如果被锁了,那这条记录也不能update,但是我却可以这样作。
       还有就是这个表中大概有几十条这样的记录无法删除,但是其他的数据则可以。
       这个问题我觉得还真难以解决????
      

  7.   

    确认一下是找不到这个锁。
    我重启数据库后,就可以删除了,可是过段时间,又会这样了。
    我曾经用界面保存一个数据后,再delete,稍微等待会,成功删除。此时再保存一条数据后,再delete则再也没有反应了,很奇怪。到现在还没解决。谁遇到过这种问题,又是如何解决的,总不能一直总是重启数据库呀,这就跟存储过程死掉以后,也是执行再也没有反应,这两个问题我一直没找到人解决。谁能解决,我给他200分。
      

  8.   

    其实我一直觉得它没有锁定,因为update就可以成功递交,可就是delete无反应。我的数据库是Oracle8.0.5
      

  9.   

    check your 客户端程序代码,看是否可以解决
      

  10.   

    可能是缓冲区满了,用commit手动提交一下试试看
      

  11.   

    难道缓冲区满了,就不能delete了吗,问题是update可以啊
      

  12.   

    UPDATE 以后DELETE 之前 有没有 COMMIT ?
      

  13.   

    对啊,应该是没有COMMIT的缘故
    如果不是可以跟踪一下操作过程
      

  14.   

    将sql_trace打开,看看这个delete语句到底作了什么操作,还有,在sqlplus中执行一下,记得打开set autotrace on,看看结果吧。