`
aty
  • 浏览: 35609 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java支持ORACLE的in不能超过1000

阅读更多

Oracle的in语句,不能超过1000个值,否则会报sql出错。

public String splitInCondition(List<String> dataList, String columnName, String type)
    {

        String relation = null;
        if ("in".equalsIgnoreCase(type))
        {
            relation = " OR ";
        }
        else
        {
            relation = " AND ";
        }

        // 需要返回的sql的in子语句
        StringBuilder sqlBuilder = new StringBuilder("(" + columnName + " " + type + " (");

        // 列表长度
        int dataSize = dataList.size();

        int count = 0;

        while (count < dataSize)
        {
            if ((count + 1) % 1000 == 0)
            {
                sqlBuilder.deleteCharAt(sqlBuilder.lastIndexOf(","));

                sqlBuilder.append(") " + relation + " " + columnName + " " + type + " (");
            }

            sqlBuilder.append('\'');
            sqlBuilder.append(dataList.get(count));
            sqlBuilder.append('\'');
            sqlBuilder.append(',');
            count++;
        }

        // 删除最后一个,
        sqlBuilder.deleteCharAt(sqlBuilder.lastIndexOf(","));

        // 添加右括号
        sqlBuilder.append(')');
        sqlBuilder.append(')');

        return sqlBuilder.toString();
    }

 

分享到:
评论

相关推荐

    ORACLE9i_优化设计与系统调整

    §3.2.7 不能在参数文件中指定的参数 70 §3.2.8 当参数指定错误时怎么办? 70 §3.3 参数内容说明 70 §3.4 DBA常用参数说明 71 §3.4.1 跟踪文件路径(BACKGROUND_DUMP_DEST) 71 §3.4.2 在缓冲区驻留对象...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    是oracle权限最高的用户,登录时不能用normal。 2. system用户:超级用户,默认是SYSOPT(操作数据库的人),不过它也能以SYSDBA的权限登陆。拥有普通dba角色权限。 3. scott用户:是个演示用户,是让你学习Oracle用的...

    java 面试题 总结

    java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 3、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置...

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    oracle数据库经典题目

    文本参数文件的修改是通过直接对文本的修改实现的,通过命令行是无法将修改后的参数值写入该文件中,而服务器初始化参数文件是不能直接修改的,必须通过ALTER SYSTEM语句来进行参数修改的。 7. 简述PL/SQL程序结构及...

    超级有影响力霸气的Java面试题大全文档

     java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 6、int 和 Integer 有什么区别  Java 提供两种不同的类型:引用类型和原始类型(或...

    java微信公众号MVC开发框架

    微信推送消息或事件如果超过5秒,微信会中断连接,有时候微信方法的执行会超过5秒钟,针对这种情况,jwx采用微信方法调用超时阀值机制,如果微信方法调用线程不能在超时阀值内处理完毕,Servlet会先行返回http响应,...

    支持多数据库的ORM框架ef-orm.zip

    支持Oracle、MySQL、Postgres、MSSQL、GBase、SQLite、HSQL、Derby等数据库。除了API方式下的操作能兼容各个数据库之外,就连SQL的本地化查询也能使之兼容。JMX动态调节 可以用JMX查看框架运行统计。框架的debug...

    BlackBerry开发平台配置及入门介绍(傻瓜教程)

     *世界各地都在使用的优秀的、经证明有效的解决方案:用户超过365万、全球部署BlackBerry的企业及政府组织超过45,000、可用于50多个国家/地区的超过100个网络完整的无线企业解决方案BlackBerry提供了一个完全集成的...

    测试培训教材

    6、修改IP地址后不能登录QC 解决办法: 在C:\Program Files\Mercury\Quality Center\jboss\server\default\deploy目录下找到10sabin.war 进入10sabin.war\WEB-INF,修改siteadmin.xml中的IP地址: 修改数据库中的...

    网管教程 从入门到精通软件篇.txt

    如果不能在启动目录(默认为 %systemroot%System32)中找到该文件,将试着在 Windows 安装 CD 中找到它。如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart  创建和删除硬盘...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。 WebStorage HTML新增的本地存储解决...

Global site tag (gtag.js) - Google Analytics