Как добавить несколько входных параметров в соединитель базы данных в Mule - PullRequest
0 голосов
/ 28 февраля 2019

Я использую Anypoint Studio 7.3 и Mule 4.1.

Я использую соединитель массовой вставки базы данных и хочу передать несколько входных параметров в SQL-вставку.

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

{payload: payload, tableName: vars.tblName, username: vars.username}

, но я получаю ошибку ниже, а также не уверен, как я должен ссылаться на значения в полезной нагрузке: Код или полезная нагрузка. Код:

Невозможно привести Объект ({payload: [{Code: "1", Имя: "test1", Co ...) к массиву

Используемая конфигурация:

        <db:bulk-insert doc:name="Bulk Insert" doc:id="36328b21-ffd9-485e-8afa-34b6cb742956" config-ref="db-config">
            <db:bulk-input-parameters ><![CDATA[#[{payload: payload, tableName: vars.tblName, Username: vars.username}]]]></db:bulk-input-parameters>
            <db:sql >#["INSERT INTO :tableName
(
    :tableName,
    Code,
    Name,
    Comments
    User
)
VALUES 
(
    NEWID(), 
    :Code, 
    :Name, 
    :Comments,
    :username
)"]</db:sql>
        </db:bulk-insert>

Спасибо за любую помощь

1 Ответ

0 голосов
/ 08 марта 2019

Проблема здесь в том, что массовая вставка в мул ожидает и массив объектов.Где каждый элемент массива является объектом с параметрами строки для вставки.

Так что в вашем случае я предполагаю, что полезная нагрузка имеет массив всех кодов, имен и комментариев, поэтому я бы использовал этот скрипт

<db:bulk-input-parameters ><![CDATA[#[
        payload map ((item) -> item ++ {tableName: vars.tblName, username: vars.username} )
]]]></db:bulk-input-parameters>
...