2012-03-21 14 views
-1

我有一個表4列c1, c2, c3, c4c1c2構成表格的主鍵。刪除查詢不是工作表格java應用程序

當我在Java中運行以下內容時,它會掛在我的應用程序中。

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

然而,相同的查詢在Oracle DB控制檯上運行完全正常。當我運行DELETE from mytable where c3 = 'val'它從我的應用程序完美地工作。

可能是什麼原因?

+0

'c1'和'c2'的數據類型是什麼?在這兩種情況下你是否得到不同的查詢計劃?你是否在兩種情況下使用字符串文字?或者你在一種情況下使用綁定變量? – 2012-03-21 13:55:03

回答

0

也許只有一個Oracle會話會阻止另一個會話。在這種情況下,「控制檯」會話阻止Java應用程序會話。 嘗試在「Oracle數據庫控制檯」會話中執行COMMIT。

當您從一個會話中刪除某些行而沒有提交,然後嘗試從另一個會話(Java應用程序)刪除相同的行時,它將掛起,直到第一個會話提交(或回滾)。