Mule4在dataweave中的映射后批量插入,提示字段包含多个对象的错误

时间:2019-04-29 08:26:24

标签: java bulkinsert dataweave mule4

我正在尝试在批处理后将批量数据插入mssql。

以下是Mule4中批量插入组件的输入: [ { "schemaId": 311, "createDT": "2019-04-29 04:22:51.535", "jsonData": { "Employee Name": "Becky Forgey" } }, { "schemaId": 311, "createDT": "2019-04-29 04:22:51.536", "jsonData": { "Employee Name": "sahana" } } ] 数据库查询为:

INSERT INTO [test].[dbo].[EmployeeData] (SchemaID,CreateDatetime,JsonData) VALUES (:schemaId,:createDT,:jsonData)

INPUT参数是有效载荷。

如果我为jsonData发送一个字符串值,它将插入但批处理结果由多个记录组成,并且我将其映射到dataweave中。

如果我尝试在json上方插入,则会出现以下错误:

Message               : The conversion from UNKNOWN to NVARCHAR is unsupported.
Error type            : DB:QUERY_EXECUTION
Element               : test-mapFlow/processors/5 @ test-map:test-map.xml:41 (Bulk insert)
Element XML           : <db:bulk-insert doc:name="Bulk insert" doc:id="98f8b9a0-b3d2-4beb-a31c-9f76af7f1447" config-ref="Database_Config">
<db:sql>INSERT INTO [rq].[dbo].[EmployeeMasterData] (SchemaID,CreateDatetime,JsonData) VALUES (:schemaId,:createDT,:jsonData)</db:sql>
</db:bulk-insert>

请指导

1 个答案:

答案 0 :(得分:0)

请提供完整的脚本,说明如何显示SQL数据。通常,它具有您的值和sql值之间的映射。没有它,我只能猜测,我的猜测是jsonData应该不是jsonData。“雇员姓名”

另一个猜测-如果没有正确的日志记录,我将无法确认-jsonData不存在。为避免此类问题,应为每个参数提供默认值。

通常-尝试避免多次转换,或在尽可能接近最终的平台上https://simpleflatservice.com/mule4/AvoidCoversionsOrMakeThemNative.html