select* from table_name where id in (id1,id2,id3...)
in后括号中的参数个数有限制,Oracle 9i 中个数不能超过256,Oracle 10g个数不能超过1000
解决方案一:分隔参数,使用split语句拆分拼凑参数
方案二:同样我们可以使用or来代替union all 同样可以实现查询。
/**
*
*<p>该方法用来切割字符串,oracle子查询最多支持1000个in,所以必须切分字符串</p>
* @author fgp 2013年11月14日 上午9:18:02
* @version V1.0
* @modificationHistory=========================逻辑或功能性重大变更记录
* @modify by user: {修改人} 2013年11月14日
* @modify by reason:{方法名}:{原因}
*/
public final class SqlInHelperUtil {
/**
*
* 创建一个新的实例SqlInHelperUtil.
*/
private SqlInHelperUtil() { } ;
/**
*
* <p>处理where in 的参数,当where in 里面参数超过一定数量的时候,把它拆分开处理。oracle10g最多支持1000个参数,超过1