也是用到了才知道,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 的解决方案.txt
oracle sq 使用l in 连接大于1000情况下报错解决办法。
ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup ...
§3.2.8 当参数指定错误时怎么办? 70 §3.3 参数内容说明 70 §3.4 DBA常用参数说明 71 §3.4.1 跟踪文件路径(BACKGROUND_DUMP_DEST) 71 §3.4.2 在缓冲区驻留对象(BUFFER_POOL_KEEP) 71 §3.4.3 版本兼容...
oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...
完全调用一次不超过10ms db block changes:那部分造成SGA中数据块变化的insert,update或delete操作数 这项统计可以大概看出整体数据库状态。在各项事务级别,这项统计指出脏缓存比率。 execute count:执行的...
二、 注释说明 1. 本注释说明主要用于PL/SQL程序及其它SQL文件,其它可作参考; 2.... ―― 这儿是注释 /* 这儿是注释 */ REM 这儿是注释 3.... REM $Header: ...• 一行最长不能超过80字符
1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。 3.在需要滤除查询结果中重复的行时,必须...
值范围: 任何有效的日期格式掩码, 但不得超过一个固定长度。 默认值: 派生 nls_timestamp_tz_format: 说明: 与 NLS_TIME_TZ_FORMAT 相似, 其中的一对值指定 TIMESTAMP 数据类型的默认值, 该类型除存储 YEAR, MONTH...
可以在导出日志中观察到: exp-00067: table xxx will be exported in conventional path 如果没有使用直接路径,必须保证buffer参数的值足够大. 有一些参数于direct=y不兼容,无法用直接路径导出可移动的tablespace,...
5121 oracle 42 0 435M 15M sleep 0:01 0.60% oracle 717 root 44 0 10M 4358K sleep 13:43 0.30% Xdec 5120 root 44 0 5832K 3203K run 0:00 0.10% top 558 root 44 0 3640K 180K sleep 34:13 0.00% os_mibs ...
POSITION(substr IN str) 返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0. mysql> select LOCATE('bar', 'foobarbar'); -> 4 mysql> select LOCATE('xbar', 'foobar'); -> 0该...
where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where ...
因为oracle每次in()数据不能超过1000行,但是每个数据都要接单引号,所以写了这个程序,使用方法:复制多行数据,然后双击程序,会自动把数据加上单引号更新粘贴板,粘贴到in()中去就可以了。
FME产品分为三个层次: 一、入门级 1、特点:支持常见的GIS软件的数据交换,如MapInfo TAB, DGN, DXF, DWG, SDTS, SHP, and TIGER;可以运行大部分函数(Funtion和Factory);...4)FME Oracle Suite:在FME ESRI S
在2004年三月,Java开发者年度大会宣布了由其读者选择的最佳Java组件年度奖结果,超过15,000位开发者投票选举诸多Java工具套件(当然包括不少声名显赫的供应商如Oracle和Apple等)之一。但最终,Eclipse的标准小部件...
在 2004 年三月,Java 开发者年度大会宣布了由其读者选择的最佳Java 组件年度奖结果,超过15,000 位开发者投票选举诸多Java 工具套件(当然包括不少声名显赫的供应商如Oracle 和Apple 等)之一。但最终,Eclipse 的...
自2010年以来,国内领先的IT专业网站IT168联合旗下ITPUB、ChinaUnix技术社区已经连续举办了三届数据库技术大会,每届大会超过千人规模,云集了国内技术水平最高的数据架构师、DBA、数据库开发工程师、研发总监、IT...