db2 SQL语句过长报错,无法通过SQL或者java代码解决?

hatom 2016-02-22 03:25:01
刚过完年,就遇到了一个比较棘手的问题:

系统在做查询时,抛出了一个SQL语句过长的异常,大概错误信息如下:
Caused by: com.ibm.db2.jcc.am.SqlException: The statement is too long or too complex.. SQLCODE=-101, SQLSTATE=54001, DRIVER=3.64.114

分析:在代码中调用了一条查询的db2 SQL语句,该SQL语句包含一个in子查询。in子语句里面的数据非常多。导致整个SQL语句过长,因而报错!而且in子语句里面数据来源的表和主查询表不是在同一个库里面(数据库服务器也不一样),不知道该如何解决了??有想过更改数据库服务器SQL语句过长的配置的方法,不太可行,也有想过使用临时表的方法,把数据同步到同一个服务器的同一个数据库里面。。。想请教大家,看看还有没有其他什么好的方法没有???

涉及SQL大概如下:
SELECT * FROM A WHERE id IN ('1' ,'2','3','4','5'... ... ... ...)
...全文
474 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kx00450 2016-03-11
  • 打赏
  • 举报
回复
将in中的条件差分成多个处理。 SELECT * FROM A WHERE id IN ('1' ,'2','3','4','5') java 处理 SELECT * FROM A WHERE id IN ('6' ,‘7','8','9','10') java 处理 。 。 。 不知道可行不
hatom 2016-03-11
  • 打赏
  • 举报
回复
都没人知道吗?还是太简单了

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧