Я использую верблюд sql (версия 2.20.1) и запускаю sql-запрос с использованием шаблона
SELECT column1,column2 FROM my_table WHERE column2 IN (:#in:ids).
Здесь все работает нормально, но я сомневаюсь, как он справится с делом: если count of ids greater than 1000.
Обрабатывает ли верблюд этот случай изнутри, или я должен создать подсписок размером 1000 в этом случае?
Поскольку я новичок в этой реализации верблюда, ищу более оптимизированное решение, если оно есть.
Это не ограничение Apache Camel, это ограничение драйвера базы данных.
Camel не имеет ограничений в предложении IN, если у вас есть 1, 500 или 50000 элементов, он использует это. Но, как говорит Джонатан, очень ПЛОХО использовать огромное предложение IN.
да, я понял. Но что можно сделать, чтобы улучшить ситуацию? Должен ли я запрашивать значения одно за другим, используя id=value в цикле, или уменьшать количество параметров if в предложении IN?
@ Girish007 У меня есть аналогичный сценарий, когда мне нужно передать коллекцию значений в предложение IN. Что касается запроса в приведенном выше вопросе, как вы передаете значения для (: #in: ids)




Если синтаксис, который вы показываете, изменен таким образом, что в списке для предложения
INимеется 1000 значений ID, Informix должен с этим справиться. Если вы используете достаточно старую версию Informix (которая сейчас не поддерживается), вы можете столкнуться с ограничениями на количество элементов в списке, но в последней версии (12.10) мы возились с большими списками - десятки тысяч наименований. Не рекомендуется использовать такие большие списки, но это должно сработать.