当mybatis的in超过1000个
maximum number of expressions in a list is 1000
方法一
select t.name from table t
inner join
<foreach collection="ids" item="itemId" separator=" union all " open="(" close=") t1">
select #{itemId} as orgNo form dual
</foreach>
on t.org_no = t1.orgNo
用内连接避免这种情况的出现
dual表
DUAL是Oracle与数据字典一起自动创建的一个表。它只有一列:DUMMY,其数据类型为:VARCHAR2(1)。DUAL中只有一行数据:‘X’。DUAL属于SYS模式,
dual是一个oracle内部表,不论我们做什么操作(不要删除记录)它都只有一条记录,
方法二
分批执行,在service层判断,当插入条数超过1000条,就取1000条以内执行sql语句,利用for循环执行