`
Eric.Yan
  • 浏览: 322938 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle in 超过1000怎么办

阅读更多

也是用到了才知道,oracle in表达式参数支持最大上限1000个,是个头疼的问题,

解决思路:拆分成多个in表达式,每个表达式中参数不超过1000,网上有很多解决的实现方法可以参考,有些看不大懂,就自己写了一个,分享下:

 

private String getSubQuery(String riskIds){
		StringBuffer subQ = new StringBuffer();
		subQ.append("(");
		if(!"".equals(riskIds) && null != riskIds){
			String[] riskIDs = riskIds.split(", ");
			if(riskIDs.length>1000){
				for(int i=0;i<riskIDs.length;i++){
					if((i+1)%1000 == 0){
						String temp = subQ.substring(0, subQ.length()-1);
						subQ.delete(0, subQ.length());
						subQ.append(temp);
						subQ.append(") or cc.cntlKORInfo.korEntityId in (");
						subQ.append(riskIDs[i]+",");
					}else{
						subQ.append(riskIDs[i]+",");
					}
				}
				String temp = subQ.substring(0, subQ.length()-1);
				subQ.delete(0, subQ.length());
				subQ.append(temp);
				subQ.append(")");
			}else{
				subQ.append(riskIds);
				subQ.append(")");
			}
		}else{
			subQ.append(")");
		}
		
		return subQ.toString();
	}

 

传入参数是一个"1,2,3,4"形式的string,分隔符",";

其他的实现方法可以参考下:

http://www.blogjava.net/hoojo/archive/2012/08/31/386692.html

http://www.cnblogs.com/ttc/archive/2008/07/21/1247790.htm

 

 

 

分享到:
评论

相关推荐

    Oracle查询处理in条件超过1000条

    Oracle查询处理in条件超过1000条的2种后台处理方式:A,后台拼接查询条件;B,每1000条查询一次,最后返回查询结果;

    Oracle SQL in 超过1000的解决方案list

    oracle中如果非要用in作为条件的话,超过1000条可以用col in() or col in()的方式来处理

    [数据库]处理 Oracle SQL in 超过1000 的解决方案.txt

    ### Oracle SQL IN 子句超过1000个值的处理方法 在Oracle数据库中,当我们需要使用SQL的IN子句来匹配一个包含超过1000个值的列表时,会遇到一个问题:Oracle默认限制了IN子句中的元素数量不能超过1000个。这主要是...

    oracle sql in 连接大于1000报错解决办法

    oracle sq 使用l in 连接大于1000情况下报错解决办法。

    Oracle接收长度大于4000的字符串

    本文将详细介绍如何在.NET环境中处理和传递长度超过4000个字符的字符串至Oracle数据库。 #### 1. 使用Blob类型存储长字符串 对于长度远超4000个字符的数据,推荐使用`BLOB`类型。BLOB类型可以存储非常大的二进制...

    Oracle Order Management Using Oracle Workflow in Oracle Order Ma

    Oracle Order Management 使用 Oracle Workflow 在 Oracle Order Management 11i 中 Oracle Order Management 是一个关键的企业资源计划(ERP)模块,用于处理企业的订单生命周期管理。它提供了全面的功能,从订单...

    oracle中4G以上内存的使用方法

    1. **设置“Lock Pages in Memory”权限**:Oracle进程需要获得锁定内存页面的权限,以便能够有效地使用AWE管理的内存。这可以通过组策略编辑器(gpedit.msc)完成。 - 打开组策略编辑器,导航到“计算机配置 -&gt; ...

    Oracle自定义脱敏函数的代码详解

    V_NAME VARCHAR2(1000); V_N NUMBER; V_HID VARCHAR2(200); V_SQL VARCHAR2(200); V_NUM_FLAG NUMBER; BEGIN -- ... END; ``` 该函数名为`F_GET_SENSITIVE`,接收两个参数:`IN_STR`表示待脱敏的字符串,`IN_...

    Oracle整體流程-01(Oracle 制造与供应链产品)

    文档还提到,Oracle的产品线非常广泛,包含超过一百个模块,这些模块被组织成不同的产品系列,以满足不同企业的特定需求。Oracle的产品设计强调了集成性和模块化,通过将不同模块组合,可以为客户提供定制化的解决...

    Oracle 12c DBA Handbook

    - **Scott Gossett**:拥有超过23年的Oracle RAC、性能调优和高可用性数据库方面的经验,现为Oracle Advanced Technologies Solutions的技术总监。他曾担任Oracle Education的高级讲师长达12年,专注于教授Oracle...

    Oracle性能测试指标

    4. **内存排序率(In-memory Sort%)**:显示排序操作在内存中完成的比例。该值接近100%表明系统运行良好。如果低于100%,表示磁盘I/O操作增多,考虑增大sort_area_size参数。 5. **共享区命中率(Library Hit%)**:...

    Oracle 数据字典

    Oracle 数据字典 ...Oracle 数据字典是 Oracle 数据库系统的核心组件之一, plays a crucial role in the Oracle database system, providing a centralized repository of metadata about the database objects.

    黄远邦_复杂而有趣的ORACLE优化案例集锦

    这种方式导致了大量不必要的子查询执行,这也是导致执行时间超过5天的根本原因。 **优化策略**: - 首先确定x是y的子集,z是w的子集。 - 使用图形表示来直观理解SQL等价改写的过程。 - 优化后的SQL语句如下: ```...

    oracle发展历程

    自1977年Relational Software Inc.(RSI)成立并随后发展成为Oracle Corporation以来,Oracle数据库经历了多次重大变革,不断适应着信息技术领域的快速发展。 1983年,Oracle 3.0版本的发布标志着SQL语言的加入和...

    Oracle_EBS_采购模块培训

    采购模块关联的Oracle产品包括EDIGateway、Oracle Inventory、Oracle Master Scheduling/MRP、Oracle Order Management、Oracle Work in Process、Oracle Human Resources、Oracle Project Accounting、Oracle EBS ...

    Oracle SQL 测试题目

    D选项错误,`IN` 子句中混合了日期和字符串,应确保两边类型一致。 6. 序列(SEQUENCE)的使用: - 当序列 `seq1` 已生成到10,下次调用 `nextval` 会返回20,因为增量是10。所以选项B正确。 - 选项A、C和D均不...

    Oracle Database 11g All-in-One Exam Guide

    而Roopesh Ramklass则拥有超过12年的IT行业经验,特别是在Oracle技术的多个领域都有涉猎,包括数据库、应用服务器和商业智能产品。他们丰富的实践经验为本书提供了坚实的技术基础和实战案例。 技术编辑方面,Gavin ...

    arcsde for oracle 存储机制研究

    【arcsde for oracle 存储机制研究】 在Oracle地理数据库中,arcsde用于管理和存储GIS(地理信息系统)数据,其中包括矢量、栅格和属性数据。BLOB(Binary Large Object)是Oracle数据库用于存储大容量二进制数据的...

Global site tag (gtag.js) - Google Analytics