ORA-01795: 列表中的最大表达式数为 1000
在 sql 中用 in (?),A2 的方式报错,执行错误,SQL 参数异常或者 SQL 语句语法错误 : ORA-01795: 列表中的最大表达式数为 1000,请问下有什么办法解决吗
"在 sql 中用 in (?),A2 的方式报错,执行错误,SQL 参数异常或者 SQL 语句语法错误 : ORA-01795: 列表中的最大表达式数为 1000,请问下有什么办法解决吗"
在 sql 中用 in (?),A2 的方式报错,执行错误,SQL 参数异常或者 SQL 语句语法错误 : ORA-01795: 列表中的最大表达式数为 1000,请问下有什么办法解决吗
SQL 进行 IN 查询时,IN 中的数据量不能超过 1000 条。
例如:select * from student where id in (‘S1’,‘S2’………..)
如果 in 后面数据量过多的话就会报错。
解决方法是:用 or 关键字
如:select * from student where id in(’S1‘,‘S2’,………..‘S900’)or id in (‘S901’,……….)
用集算器语法自己拆一下,很简单。
这个主要是数据库中 in 中个数的限制
一:可以像楼上所说,在集算器中将 in 中条件拆分,然后拼接成 in (?) or in (?) 这种方式,保证 in 内的个数少于 1000,集算器中封装了一些函数及语法,使用起来简单些。
二:也可以自己写 java 程序处理,拼接好后传递给报表,比如报表中用宏方式,java 程序中处理好后将整个 条件传递给这个宏也行。