我正在使用Anypoint Studio 7.3和Mule 4.1。
我正在使用数据库批量插入连接器,我想将多个输入参数传递到SQL插入中。
我使用以下语法添加了多个输入参数
{payload: payload, tableName: vars.tblName, username: vars.username}
但是我收到下面的错误,并且也不确定如何引用有效载荷中的值仍然是:Code或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>
感谢您的帮助
答案 0 :(得分:0)
这里的问题是,在bulk子中批量插入对象和对象数组。数组的每个元素都是一个对象,其中包含要插入的行的参数。
因此,在您的情况下,我认为有效负载包含所有代码,名称和注释的数组,因此我将使用此脚本
<db:bulk-input-parameters ><![CDATA[#[
payload map ((item) -> item ++ {tableName: vars.tblName, username: vars.username} )
]]]></db:bulk-input-parameters>