我有一个包含4列c1, c2, c3, c4
的表格。 c1
和c2
构成了表格的主键。
当我在Java中运行以下内容时,它会在我的应用程序中挂起。
DELETE from mytable
where c1 = 'val'
and c2 = 'val2'
但是,相同的查询在Oracle DB控制台中运行完全正常。当我运行DELETE from mytable where c3 = 'val'
时,它在我的应用程序中运行得非常好。
可能是什么原因?
答案 0 :(得分:0)
也许只有一个Oracle会话会阻止另一个会话。在这种情况下,“控制台”会话阻止Java应用程序会话。 尝试在“Oracle DB控制台”会话中进行COMMIT。
当您从一个会话中删除某些行而没有提交,然后尝试从另一个会话(Java应用程序)中删除相同的行时,它将挂起,直到第一个会话提交(或回滚)。