我正在尝试在批处理后将批量数据插入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>
请指导
答案 0 :(得分:0)
请提供完整的脚本,说明如何显示SQL数据。通常,它具有您的值和sql值之间的映射。没有它,我只能猜测,我的猜测是jsonData应该不是jsonData。“雇员姓名”
另一个猜测-如果没有正确的日志记录,我将无法确认-jsonData不存在。为避免此类问题,应为每个参数提供默认值。
通常-尝试避免多次转换,或在尽可能接近最终的平台上https://simpleflatservice.com/mule4/AvoidCoversionsOrMakeThemNative.html