Oracle Sql語句長度限制問題及解決 |
發(fā)布時間: 2012/8/11 16:47:26 |
最近在寫Sql語句時,碰到兩個問題: 1)ORA-01795: maximum number of expressions in a list is 1000 起因:寫出了這樣的sql語句:SELECT PALLET_ID,BOX_ID,STATUS FROM SD_CURRENT_BOX WHERE PALLET_ID IN('"+pallets+"');其中的pallets是有很多個pallet_id組合成的字符串。 分析:很顯然,根據(jù)錯誤提示可以知道:in 中items的限制 1000個。 解決:用子查詢來代替pallets長字串。 2)ORA-01704: string literal too long 起因:寫出了這樣的Sql語句:UPDATE PDM_MEMBERLIST SET MEMBERS='<Project> ... 此處略去n多串 <ProjectID>'. 分析:數(shù)據(jù)庫設(shè)計MEMBERS字段為xmltype格式,數(shù)據(jù)存儲時候,是以字符串的形式存儲。這樣在xml數(shù)據(jù)量大的時候,造成sql語句過長,嘗過2k的限制。 解決:參數(shù)化sql語句。 本文出自:億恩科技【www.allwellnessguide.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |