• ORA-01795 解决办法


    今天在工作中使用mybatis plus的selectBatchIds(List<Integer> ids)方法时,oracle报了ORA-01795的错。

    则是因为oracle中使用 in 有限制,后面集合数目不能大于1000个,否则就会报错。

    所以可以使用这种形式来规避。

    select   ...  from ...  where id  in (1,2...1000) or in (1001,1002...2000) or (2001....

    所以当id集合大于1000时候,就不能用Mybatis plus了,要在xml中手写查询方法。

    如下图:

    经测试,最后的运行结果应该是这样:

    select   ...  from ...  where id  in (1,2...998,null) or in (999...1997,null) or (1998....

     如果在Sql中不加上NULL,可能会形成这样的sql,直接报错。

    select   ...  from ...  where id  in (1,2...998,) or in (999)

  • 相关阅读:
    C#生成唯一码方法
    解剖常用软件程序都用什么语言开发
    Unity3D笔记七 GUILayout
    函数的递归
    函数
    函数的参数
    函数的返回值
    函数的定义
    文件处理
    集合
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/12992383.html
Copyright © 2020-2023  润新知