如何在Mule中向数据库连接器添加多个输入参数

问题描述 投票:0回答:1

我正在使用Anypoint Studio 7.3和Mule 4.1。

我正在使用数据库批量插入连接器,我想将多个输入参数传递到SQL插入。

我使用以下语法添加了多个输入参数

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

但是我得到了下面的错误,也不确定我应该如何引用有效负载中的值仍然是:Code或payload.C​​ode:

无法将对象({payload:[{Code:“1”,Name:“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>

谢谢你的帮助

mule anypoint-studio dataweave
1个回答
0
投票

这里的问题是在mule中的de bulk插入期望和对象数组。其中Array的每个元素都是一个Object,其中包含要插入的行的参数。

所以在你的情况下我假设有效载荷有一个包含所有代码,名称和注释的数组,所以我会使用这个脚本

<db:bulk-input-parameters ><![CDATA[#[
        payload map ((item) -> item ++ {tableName: vars.tblName, username: vars.username} )
]]]></db:bulk-input-parameters>
© www.soinside.com 2019 - 2024. All rights reserved.