• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    Oracle教程:ORA-01795的原因及解決辦法

    來源:懂視網 責編:小采 時間:2020-11-09 11:37:18
    文檔

    Oracle教程:ORA-01795的原因及解決辦法

    Oracle教程:ORA-01795的原因及解決辦法:找出拋異常時執行的SQL語句,貌不驚人啊,很平常一SQL語句,內容類似:SELECT * FROM DUAL T WHERE T.DUMMY IN ( 系統報出一SQL異常,內容如下: java.sql.SQLException: ORA-01795: maximum number of expressions
    推薦度:
    導讀Oracle教程:ORA-01795的原因及解決辦法:找出拋異常時執行的SQL語句,貌不驚人啊,很平常一SQL語句,內容類似:SELECT * FROM DUAL T WHERE T.DUMMY IN ( 系統報出一SQL異常,內容如下: java.sql.SQLException: ORA-01795: maximum number of expressions

    找出拋異常時執行的SQL語句,貌不驚人啊,很平常一SQL語句,內容類似:SELECT * FROM DUAL T WHERE T.DUMMY IN (

    系統報出一SQL異常,內容如下:

    java.sql.SQLException: ORA-01795: maximum number of expressions in a list is 1000

    找出拋異常時執行的SQL語句,貌不驚人啊,很平常一SQL語句,內容類似:SELECT * FROM DUAL T WHERE T.DUMMY IN ('1', '2', '3', ...),只是IN后括號里的主鍵值多了些,其它沒啥特別的。

    看ORA-01795中給出的內容是SQL語句的 expressions 中list接受的最大值是1000,查了下ORA-01795的說明,確定問題出在IN后括號里的主鍵值超過1000上。

    解決思路大至有兩種,一種是換用JOIN或者EXIST,另一種是仍然用IN,但是把條件分成多個少于1000的IN即:SELECT * FROM DUAL T WHERE T.DUMMY IN ('1', '2', '3',...,'1000') OR IN ('1001', '1002', ..., '2000') OR ...

    由于個人感覺JOIN不直觀、EXIST含義不易理解,,采用了方式二,附代碼:

    2011-2-14 15:56:17,對代碼進行了修正,感謝gouliming及時指出代碼中的錯誤。

    ========================================================


    StringBuffer sb = new StringBuffer();

    int inNum = 1; //已拼裝IN條件數量
    for(int i=0; i

    if(StringUtil.isEmpty(custNOs[i])) continue;

    //這里不要犯低級錯誤而寫成:if(i == custNOs.length)
    if(i == (custNOs.length-1))
    sb.append("'" + custNOs[i] + "'"); //SQL拼裝,最后一條不加“,”。
    else if(inNum==1000 && i>0) {
    sb.append("'" + custNOs[i] + "' ) OR CUST_NO IN ( "); //解決ORA-01795問題
    inNum = 1;
    }
    else {
    sb.append("'" + custNOs[i] + "', ");
    inNum++;
    }

    }

    String selectSQL = "SELECT * FROM CUSTOMER T WHERE T.CUST_NO IN ( " + sb.toString() + " )";

    linux

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Oracle教程:ORA-01795的原因及解決辦法

    Oracle教程:ORA-01795的原因及解決辦法:找出拋異常時執行的SQL語句,貌不驚人啊,很平常一SQL語句,內容類似:SELECT * FROM DUAL T WHERE T.DUMMY IN ( 系統報出一SQL異常,內容如下: java.sql.SQLException: ORA-01795: maximum number of expressions
    推薦度:
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产精品无码专区在线观看| 中文字幕久久精品无码| 国模和精品嫩模私拍视频| 日本aⅴ精品中文字幕| 精品国产爽爽AV| 久久九九亚洲精品| 精品无码AV一区二区三区不卡| 精品国产午夜福利在线观看| 日本欧美韩国日本精品| 国产亚洲色婷婷久久99精品| 亚洲国产精品综合久久网络| 国内精品99亚洲免费高清| 亚洲国产精品久久66| 好吊妞视频精品| avtt天堂网久久精品| 色婷婷在线精品国自产拍| 日韩欧美亚洲国产精品字幕久久久| 国产成人久久精品二区三区| 嫩草影院久久国产精品| 国产精品九九九久久九九| 99精品人妻无码专区在线视频区 | 奇米精品视频一区二区三区| 亚洲精品视频免费| 亚洲国产精品无码久久九九| 日韩精品在线播放| 亚洲精品动漫免费二区| 亚洲а∨天堂久久精品9966| 男女男精品网站免费观看| 蜜臀精品无码AV在线播放| 人妻无码久久精品| 亚洲精品无码99在线观看| 亚洲精品视频在线看| 亚洲午夜精品久久久久久app| 亚洲精品无码mv在线观看网站| 亚洲七七久久精品中文国产| 亚洲国产精品成人精品无码区| 中文字幕日韩精品有码视频| 亚洲精品无码久久久久| 日韩精品无码久久久久久| 久久精品aⅴ无码中文字字幕不卡| 熟妇人妻VA精品中文字幕|