我正在使用jconn2.jar(5.5)jdbc驱动程序进行Sybase连接 从独立的Java应用程序到sybase数据库。 我的java应用程序将读取数千个 来自文本文件的记录并插入到表中 sybase数据库。 我有一个带有IN子句的select查询。这个IN子句将有超过10,000个值。在执行此查询时, 应用程序返回以下错误:
引起:com.sybase.jdbc2.jdbc.SybSQLException:参数太多 - 符号表溢出。
at com.sybase.jdbc2.tds.Tds.processEed(Tds.java:3281)at at com.sybase.jdbc2.tds.Tds.nextResult(Tds.java:2548)at at com.sybase.jdbc2.jdbc.ResultGetter.nextResult(ResultGetter.java:69) 在 com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:220) 在 com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:203) 在 com.sybase.jdbc2.jdbc.SybStatement.queryLoop(SybStatement.java:1614) 在 com.sybase.jdbc2.jdbc.SybStatement.executeQuery(SybStatement.java:1599) 在 com.sybase.jdbc2.jdbc.SybPreparedStatement.executeQuery(SybPreparedStatement.java:96)
在 org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
在 org.springframework.jdbc.core.JdbcTemplate $ 1.doInPreparedStatement(JdbcTemplate.java:648)
在 org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:591) ......还有10个
相同的查询适用于IN子句中的值 最多10,000个值。
我试过jconnect6和jconnect7。但结果相同。
任何人都有任何想法,为什么会这样 对于具有更多值的值,返回如上所述的错误 超过10,000?
提前致谢
答案 0 :(得分:0)
听起来你只是达到了硬限制?我不建议使用那么多值的IN条件:如果你需要那么多,你在SQL中做了一些非常不可取的事情,可能是时候看一个重构了吗?