选择列表中的元素数目超出了 4096 元素的最大允许值。

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 选择列表中的元素数目超出了 4096 元素的最大允许值。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:404)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:285)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:79)

请问有人知道是什么问题导致的吗?百度了好久都没有搜到类似的问题!

目前是一个数据库,2个阿里云服务器,阿里云服务器上部署的是同一个一模一样的项目,访问同一个数据库。
其中一台服务器查询没有报错。
我把数据库下载到本地,本地启动项目查询也没有报错。

img


img


数据库字段长度改了也没有用。查询语句限制在4000条也没有用。关键是本地没有这个问题,所以不好定位。线上是生产环境也不能轻易停服。哎。

一张表中的字段,所有varchar总长度超过了这个数值了,把其中某些改为text或者减少varchar长度应该就可以了

img

需要存储的字符串长度超过了4096字节。修改对应字段类型为大文本类型。

存储的数据中,某一个属性超过了数据库设置的长度4096,一种方法是在数据库中修改字段长度,另一种是前端页面添加限制,长度超过不让传到后台

数据库能打开吗??本地可以连接不

看一下两张表的建表语句

是数据量的原因,你把表里面的数据减少,就不会有这个错了。

如有帮助,请采纳,十分感谢!

你把你的sql和表结构贴出来看看吧

你这是查询的条数过多了吧

某个绑定控件数据超过4096。考虑使用自定义控件