我正在使用Anypoint Studio 7.3和Mule 4.1。
我正在使用数据库批量插入连接器,我想将多个输入参数传递到SQL插入。
我使用以下语法添加了多个输入参数
{payload: payload, tableName: vars.tblName, username: vars.username}
但是我得到了下面的错误,也不确定我应该如何引用有效负载中的值仍然是:Code或payload.Code:
无法将对象({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中的de bulk插入期望和对象数组。其中Array的每个元素都是一个Object,其中包含要插入的行的参数。
所以在你的情况下我假设有效载荷有一个包含所有代码,名称和注释的数组,所以我会使用这个脚本
<db:bulk-input-parameters ><![CDATA[#[
payload map ((item) -> item ++ {tableName: vars.tblName, username: vars.username} )
]]]></db:bulk-input-parameters>