搜索查询返回此错误。我有一种感觉,因为当我试图对其他对象进行ORM时,in子句对于从属对象是巨大的。
显然,在子句中不应该一次构建1个参数。谢谢ibatis。
答案 0 :(得分:20)
最好的办法是修改您的应用程序,将少于2100个参数传递给存储过程。这是DBMS limit that can't be raised。
答案 1 :(得分:14)
当使用明显无辜的LINQ to SQL查询时,我遇到了同样的错误。我只是想检索其ID是存储在数组中的所有记录:
dataContext.MyTable.Where(item => ids.Contains(item.Id)).ToArray();
事实证明,ids数组有超过2100项,似乎DataContext在生成的SQL查询中为数组中的每个项添加一个参数。
最后,这是我的代码中的一个错误,因为ids数组没有这么多项目。但无论如何,值得记住的是,在LINQ to SQL中使用此类构造时需要进行一些额外的验证。
答案 2 :(得分:9)
你可以做一些事情:
答案 3 :(得分:-4)
如果要将2100个参数传递给单个存储过程,则只是做错了。不要提高限制或尝试解决这种可憎的问题,弄清楚如何正确行事。