zoukankan      html  css  js  c++  java
  • IN 查询时出现ORA-01795:列表中的最大表达式数为1000解决方法

    问题描写叙述:

    SQL进行IN查询时出现:java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000


    解决的方法:

    问题原因是:SQL进行IN查询时。IN中的数据量不能超过1000条。

    比如:select * from student where id in (‘S1’,'S2'...........)

    假设in后面数据量过多的话就会报错。


    解决方法是:用 orkeyword

    如:select * from student where id in(’S1‘,'S2',...........'S900')or  id in ('S901',..........)


    将list转化为String 得到例如以下字符串:  id in(’S1‘,'S2',...........'S900')or  id in ('S901',..........)

    private static String getString(String id,List<String> list){
    StringBuffer sb=new StringBuffer();
    String returnString="";
    if(list.size()==0||null==list){
    returnString=sb.append(id).append("=''").toString();

    for(int i=0;i<list.size();i++){
    if(i==0){
    sb.append(id);
    sb.append(" in (");
    }
    sb.append("'");
    sb.append(list.get(i).toString());
    sb.append("'");
    if(i>=900&&i<list.size()-1){
    if(i%900==0){
    sb.append(") or ");
    sb.append(id);
    sb.append(" in (");
    }else{
    sb.append(",");
    }
    }else{
    if(i<list.size()-1){
    sb.append(",");
    }
    }
    if(i==list.size()-1){
    sb.append(")");
    }
    }
    returnString=sb.toString();
    return returnString;
    }


  • 相关阅读:
    模型命名规范
    Jquery 将表单序列化为Json对象
    Failed to read auto-increment value from storage engine错误的处理方法
    css样式表中设置table的第一列的宽度是固定值
    thinkphp中I("parm")用法的注意事项
    获取凌晨00:00:00的时间
    php empty()和isset()的区别
    react续集
    react的笔记整理
    vuex
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6730124.html
Copyright © 2011-2022 走看看