在我的應用程序日誌中,我可以看到正在迭代查詢結果(使用JDBC ResultSet,沒有什麼奇怪的)和某些實際結果在表中,可能會丟失,或者在結果集中出現得太晚(我不確定是哪一個,因爲如果發生這種情況,我在結束之前經常會遇到主鍵衝突)。Oracle「order by」子句返回結果的順序錯誤或者結果丟失
我的查詢是:
select t.* from myschema.vm t order by id;
然而我看不出這個問題發生時,我在運行SQL開發人員完全相同的查詢(數據庫的同時不改變),並且只出現約在我的應用程序中有一半的時間(我懷疑它有時不會發生,因爲所有插入和更新都會導致表更改)。
其他關鍵點提:
- 我做更新,插入和刪除操作可能使用其他數據庫連接,而我遍歷結果集。但是,這應該不重要,對嗎?
- 我正在使用BoneCP進行連接池。
- 數據庫編碼是AL32UTF8。
這是怎麼發生的?這讓我瘋狂!
「id」列的數據類型是什麼? –
@a_horse_with_no_name varchar2(64) –
你是否指定了'resultSetType'或'resultSetConcurrency'的任何內容? –