我們有很多數據庫中的數據,有時我們需要調用IN語句中有1000個以上項目的sql語句。我知道那些sql語句應該被重構,而IN子句不應該包含那麼多的項目,但有時候並不是那麼容易關注每個sql查詢。所以我有幾個問題。HSQLDB/Oracle - 在IN子句中有1000多個項目
- 有什麼可能解決這個問題?我發現幾個:
- 重構SQL語句 - 並不總是那麼容易
- 創建臨時表中的項目,以便IN子句將看起來像這樣
... IN (SELECT id from temptable)
- 可能是一個好主意 - 分
IN
條款列入幾個IN
條款喜歡... id IN (...) or id IN (...)
- Oracle db對IN子句有限制,但是我沒有發現我們用於單元測試的HSQLDB限制。是否可以通過HSQLDB中的某種配置或其他方式設置此限制?
- 關於IN子句的臨時表 - 如何使用HQL創建臨時表(我們在我們的應用程序中使用Hibernate 4.2)?可能嗎?
- 目前有些
IN
子句不會超過1000個項目,因爲我們在db中沒有那麼多的數據。但是在應用程序開始生產之後(它仍在開發過程中)將會有更多的數據,所以我們希望爲此做好準備。
你對這個問題有什麼經驗。你是如何解決它的?我們的環境
詳情:
- 的Hibernate 4.2
- HSQLDB 2.3.2
- 的Oracle 11g
另一個很好的例子,爲什麼使用不同的DBMS進行(單元)測試是一個壞主意 – 2015-05-27 12:46:28