ORA-01795 For ORACLE 10G

ningzi82發表於2010-08-04


ORA-01795:maximum number of expressions in a list is 1000
原因:在SQL語句時,WHERE中的某一個條件採用IN的方式,但是由於資料過多則產生錯誤,oracle中in列表不能超過1000。

解決辦法:
1.採用多個in ,原來in (1-2000) 寫成 in(1-1000) or in(1001-2000)
外部再生成一個Set 按100條一次,if(set.isempty==fasle) 再執行剩下的
2.採用join 連結。(update 沒有測試過)
3.降低In中列表元素的數量
4.直接採用迴圈,效率比較低

參考網址:http://nickkathy.javaeye.com/blog/399452

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/789833/viewspace-1036116/,如需轉載,請註明出處,否則將追究法律責任。

相關文章