Oracle Sql語句長度限制問題及解決

來源:互聯網
上載者:User

      最近在寫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組合成的字串。
      分析:很顯然,根據錯誤提示可以知道:in 中items的限制 1000個。
      解決:用子查詢來代替pallets長字串。

      2)ORA-01704: string literal too long
      起因:寫出了這樣的Sql語句:UPDATE PDM_MEMBERLIST SET MEMBERS='<Project> ...  此處略去n多串 <ProjectID>'.
      分析:資料庫設計MEMBERS欄位為xmltype格式,資料存放區時候,是以字串的形式儲存。這樣在xml資料量大的時候,造成sql語句過長,嘗過2k的限制。
      解決:參數化sql語句。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.