1

我正在尝试在批处理后将批量数据插入 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>

请指导

4

1 回答 1

0

请提供完整的脚本,您如何为 SQL 呈现数据。通常它具有您的值和 sql 值之间的映射。没有它我只能猜测,我的猜测是 jsonData ir 应该是 jsonData."Employee Name" 而不是

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

一般来说 - 尽量避免多次转换或在一个平台上尽可能接近结束https://simpleflatservice.com/mule4/AvoidCoversionsOrMakeThemNative.html

于 2020-04-08T13:43:11.007 回答