Запрос выбора базы данных Mule Soft с условием In Where

Я пытаюсь предоставить все сведения о сотруднике, передав идентификатор сотрудника в запросе выбора. к сожалению, я не могу получить список пропусков идентификаторов сотрудников.

У меня есть список идентификаторов сотрудников в массиве

employee_ids=[100,101,200,2003,400]

В муле я пытаюсь получить все данные о сотрудниках, используя текущий запрос

<db:select config-ref="mysql_Configuration" doc:name="get Employee details">
            <db:sql>
                select * from employee where employee_id in (:EMP_IDS)
            </db:sql>
            <db:input-parameters>
               #[{'EMP_IDS' : vars.listEmployeeIds}]
            </db:input-parameters>          

        </db:select>

Выдает ошибку:

********************************************************************************
Message               : Invalid column type.
Error type            : DB:QUERY_EXECUTION

Я также пытаюсь передать весь идентификатор сотрудника с отдельным значением запятой

Где значение

listEmployeeIds =[100,101,200,2003,400] joinBy "," 

Результат = "100,101,200,2003,400"

<db:select config-ref="mysql_Configuration" doc:name="get Employee details">
                <db:sql>
                    select * from employee where employee_id in (:EMP_IDS)
                </db:sql>
                <db:input-parameters>
                   #[{'EMP_IDS' : vars.listEmployeeIds}]
                </db:input-parameters>          

            </db:select>

Но это также дает мне ошибку, поскольку косвенно его преобразование в String дает мне:

Message               : java.sql.SQLSyntaxErrorException: invalid number
.
Error type            : DB:BAD_SQL_SYNTAX

Может ли кто-нибудь помочь мне решить эту проблему?


person Viral    schedule 18.11.2019    source источник


Ответы (1)


Это не будет работать таким образом, потому что соединитель базы данных использует JDBC для реализации запросов, а JDBC не поддерживает параметризацию предложения IN. Вы можете использовать альтернативный метод, описанный в следующей статье базы знаний MuleSoft https://help.mulesoft.com/s/article/How-to-use-dynamic-IN-clause-in-your-query-оператор-using-Database-Connector

person aled    schedule 19.11.2019