也是用到了才知道,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条的2种后台处理方式:A,后台拼接查询条件;B,每1000条查询一次,最后返回查询结果;
oracle中如果非要用in作为条件的话,超过1000条可以用col in() or col in()的方式来处理
### Oracle SQL IN 子句超过1000个值的处理方法 在Oracle数据库中,当我们需要使用SQL的IN子句来匹配一个包含超过1000个值的列表时,会遇到一个问题:Oracle默认限制了IN子句中的元素数量不能超过1000个。这主要是...
oracle sq 使用l in 连接大于1000情况下报错解决办法。
本文将详细介绍如何在.NET环境中处理和传递长度超过4000个字符的字符串至Oracle数据库。 #### 1. 使用Blob类型存储长字符串 对于长度远超4000个字符的数据,推荐使用`BLOB`类型。BLOB类型可以存储非常大的二进制...
Oracle Order Management 使用 Oracle Workflow 在 Oracle Order Management 11i 中 Oracle Order Management 是一个关键的企业资源计划(ERP)模块,用于处理企业的订单生命周期管理。它提供了全面的功能,从订单...
1. **设置“Lock Pages in Memory”权限**:Oracle进程需要获得锁定内存页面的权限,以便能够有效地使用AWE管理的内存。这可以通过组策略编辑器(gpedit.msc)完成。 - 打开组策略编辑器,导航到“计算机配置 -> ...
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的产品线非常广泛,包含超过一百个模块,这些模块被组织成不同的产品系列,以满足不同企业的特定需求。Oracle的产品设计强调了集成性和模块化,通过将不同模块组合,可以为客户提供定制化的解决...
- **Scott Gossett**:拥有超过23年的Oracle RAC、性能调优和高可用性数据库方面的经验,现为Oracle Advanced Technologies Solutions的技术总监。他曾担任Oracle Education的高级讲师长达12年,专注于教授Oracle...
4. **内存排序率(In-memory Sort%)**:显示排序操作在内存中完成的比例。该值接近100%表明系统运行良好。如果低于100%,表示磁盘I/O操作增多,考虑增大sort_area_size参数。 5. **共享区命中率(Library Hit%)**:...
Oracle 数据字典 ...Oracle 数据字典是 Oracle 数据库系统的核心组件之一, plays a crucial role in the Oracle database system, providing a centralized repository of metadata about the database objects.
这种方式导致了大量不必要的子查询执行,这也是导致执行时间超过5天的根本原因。 **优化策略**: - 首先确定x是y的子集,z是w的子集。 - 使用图形表示来直观理解SQL等价改写的过程。 - 优化后的SQL语句如下: ```...
自1977年Relational Software Inc.(RSI)成立并随后发展成为Oracle Corporation以来,Oracle数据库经历了多次重大变革,不断适应着信息技术领域的快速发展。 1983年,Oracle 3.0版本的发布标志着SQL语言的加入和...
采购模块关联的Oracle产品包括EDIGateway、Oracle Inventory、Oracle Master Scheduling/MRP、Oracle Order Management、Oracle Work in Process、Oracle Human Resources、Oracle Project Accounting、Oracle EBS ...
D选项错误,`IN` 子句中混合了日期和字符串,应确保两边类型一致。 6. 序列(SEQUENCE)的使用: - 当序列 `seq1` 已生成到10,下次调用 `nextval` 会返回20,因为增量是10。所以选项B正确。 - 选项A、C和D均不...
而Roopesh Ramklass则拥有超过12年的IT行业经验,特别是在Oracle技术的多个领域都有涉猎,包括数据库、应用服务器和商业智能产品。他们丰富的实践经验为本书提供了坚实的技术基础和实战案例。 技术编辑方面,Gavin ...
【arcsde for oracle 存储机制研究】 在Oracle地理数据库中,arcsde用于管理和存储GIS(地理信息系统)数据,其中包括矢量、栅格和属性数据。BLOB(Binary Large Object)是Oracle数据库用于存储大容量二进制数据的...