oracle sql查询中用in列表中最大表达式数大于1000的处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle sql查询中用in列表中最大表达式数大于1000的处理相关的知识,希望对你有一定的参考价值。

oracle sql查询中用in列表中最大表达式数大于1000时,会报异常! 我是从数据库中:
String sql= "select student_number from student",
查询后学号中的数据存入List集合中: List listString = JdbcTemplate.queryForList(sql); sql查询出来后的数据student_number共有33450条记录,我要从这些学号中查询数据,将这些学号放在stringBuffer strBuffer里面, student_number in (。。。),in里面是33450条记录。问如何处理啊?????

是的。oracle默认表达式数不允许超过1000。

最简单的办法是把这些学号导入到一个临时表。
然后两表关联。
参考技术A 用with table as语句就行了。用这种方式相当于建一个临时表,参考下面文章:
http://blog.csdn.net/iamlaosong/article/details/7061723
参考技术B 不清楚你要干啥 参考技术C 用游标分块处理。 参考技术D 分页试试。

以上是关于oracle sql查询中用in列表中最大表达式数大于1000的处理的主要内容,如果未能解决你的问题,请参考以下文章

IN 查询时出现ORA-01795:列表中的最大表达式数为1000解决方法

解决Oracle使用in语句不能超过1000问题

解决Oracle使用in语句不能超过1000问题

ORA-01795: 列表中的最大表达式数为 1000

Oracle的IN vs OR,哪个更快?

Sql语句报ORA-01795: 列表中的最大表达式数为 1000