删除查询不适用于java应用程序

时间:2012-03-21 13:15:33

标签: oracle jdbc oracle10g

我有一个包含4列c1, c2, c3, c4的表格。 c1c2构成了表格的主键。

当我在Java中运行以下内容时,它会在我的应用程序中挂起。

DELETE from mytable 
 where c1 = 'val' 
   and c2 = 'val2'

但是,相同的查询在Oracle DB控制台中运行完全正常。当我运行DELETE from mytable where c3 = 'val'时,它在我的应用程序中运行得非常好。

可能是什么原因?

1 个答案:

答案 0 :(得分:0)

也许只有一个Oracle会话会阻止另一个会话。在这种情况下,“控制台”会话阻止Java应用程序会话。 尝试在“Oracle DB控制台”会话中进行COMMIT。

当您从一个会话中删除某些行而没有提交,然后尝试从另一个会话(Java应用程序)中删除相同的行时,它将挂起,直到第一个会话提交(或回滚)。