Слишком много параметров были обеспечены в этом запросе RPC. Максимум является 2100.?

Чтобы быть более точным, временное окно события закрывается при поступлении подходящего водяного знака - что с генератором водяного знака ограниченной упорядоченности произойдет (1), если поступит событие, которое находится достаточно далеко от окна, или (2) если события приходят из конечного источника, который достигает своего конца, потому что в этом случае Flink отправит водяной знак с отметкой времени Long.MAX_VALUE, которая закроет все открытые окна времени события. Однако с Кафкой в ​​качестве источника этого не произойдет.

23
задан Konamiman 15 June 2015 в 09:39
поделиться

4 ответа

Лучше всего отредактировать свое приложение, чтобы оно прошло менее 2100 параметров хранимой процедуры. Это ограничение СУБД , которое не может быть увеличено .

21
ответ дан 29 November 2019 в 02:01
поделиться

Вы можете сделать несколько вещей:

  1. Закачать параметры в временную таблицу и использовать эту временную таблицу для фильтрации вашего запроса. См. https://stackoverflow.com/a/9947259/37055
  2. Создайте массив с разделителями-запятыми и передайте массив в SQL Server как varchar (x). Выделите его с помощью TSQL ( - вот несколько методов ) и используйте полученный набор строк для фильтрации результатов поиска.
  3. Посмотрите на логику вашего приложения. Более чем немного странно передавать 2100 параметров хранимой процедуре.
9
ответ дан 29 November 2019 в 02:01
поделиться

Если вы передаете 2100 параметров одной хранимой процедуре, вы просто делаете что-то неправильно. Не повышайте лимит и не пытайтесь обойти эту мерзость, выясните, как все делать правильно.

-4
ответ дан 29 November 2019 в 02:01
поделиться

Я получил ту же ошибку при использовании явно невинного запроса LINQ to SQL. Я просто хотел получить все записи, идентификаторы которых были среди тех, что хранятся в массиве:

dataContext.MyTable.Where(item => ids.Contains(item.Id)).ToArray();

Оказалось, что массив идентификаторов содержит более 2100 элементов, и кажется, что DataContext добавляет один параметр для каждого элемента в массиве в итоговом SQL-запросе.

В конце концов, это была ошибка в моем коде, поскольку в массиве ids не должно было быть такого количества элементов. Но в любом случае стоит иметь в виду, что при использовании таких конструкций в LINQ to SQL требуется дополнительная проверка.

15
ответ дан 29 November 2019 в 02:01
поделиться