ORA-01795: 列表中的最大表达式数为1000
有个开发人员遇到错误:ORA-01795: 列表中的最大表达式数为1000语句为一个select xxx from xxx where xxx in (xx,xx,.....);下面
有个开发人员遇到错误:ORA-01795: 列表中的最大表达式数为1000
语句为一个select xxx from xxx where xxx in (xx,xx,.....);
下面我们来看一下这是什么错误:
01795, 00000, "maximum number of expressions in a list is 1000"
// *Cause: Number of expressions in the query exceeded than 1000.
// Note that unused column/expressions are also counted
// Maximum number of expressions that are allowed are 1000.
// *Action: Reduce the number of expressions in the list and resubmit.
从这里可以看出,是一个list里面最多1000个值,也就是说in里面最多1000个值,如果in的括号里面超过了1000个值,就会报这个错误。
解决的方法和简单,就是把一个in拆分成多个in,如果超过了1000就拆分成2个in,,如果超过了4000,就拆分成5个in
改成sql如下:select xxx from xxx where xxx in (xx,xxx...) or xxx in (xx,xx,...) or xxx in (xx,xx,...);
相关阅读:
GoldenGate不使用数据泵完成Oracle-Oracle的双向复制
使用GoldenGate的数据泵进行Oracle-Oracle的单向复制
如何对 Oracle 数据泵(expdp/impdp) 进行 debug
Oracle 数据库导出数据泵(EXPDP)文件存放的位置
Oracle 10g 数据泵分区表的导出
推荐阅读
-
ORA-01795: 列表中的最大表达式数为1000
-
IN查询时出现ORA-01795:列表中的最大表达式数为1000(问题解决)
-
ORA-01795: 列表中的最大表达式数为 1000实例解决
-
C题解:有一棵树,一开始每个点有一个初始值,每一个点的新数为它到树顶的路径中的所有数,去掉一个数后的最大公因数中的最大值
-
IN查询时出现ORA-01795:列表中的最大表达式数为1000(问题解决)
-
ORA-01795: 列表中的最大表达式数为 1000实例解决
-
ORA-01795: 列表中的最大表达式数为 1000
-
ORA-01795: 列表中的最大表达式数为 1000
-
C题解:有一棵树,一开始每个点有一个初始值,每一个点的新数为它到树顶的路径中的所有数,去掉一个数后的最大公因数中的最大值
-
设在变量BUF为起始地址的字节存储单元中存放了5个有符号字节数,编写源程序找出其中最大和最小的数存放于MAX和MIN两个字节单元中。