那里有许多类似的问题/答案,但是它们不包含示例有效负载,或者不适用于dataweave 2.0。
样本有效载荷
{
"updateCaseOutput": [
{
"HENRY_RESPONSE": "error",
"AUTO_INDEX": 472
},
{
"HENRY_RESPONSE": null,
"AUTO_INDEX": 473
},
{
"AUTO_INDEX": 474
}
]
}
我进行以下转换以仅包含数组。
%dw 2.0
output application/json
---
payload.updateCaseOutput map ( updateCaseOutput , indexOfUpdateCaseOutput ) -> {
HENRY_RESPONSE: updateCaseOutput.HENRY_RESPONSE default 'updated',
AUTO_INDEX: updateCaseOutput.AUTO_INDEX
}
在转换预览中显示了以下内容:
[
{
"HENRY_RESPONSE": "error",
"AUTO_INDEX": 472
},
{
"HENRY_RESPONSE": "updated",
"AUTO_INDEX": 473
},
{
"HENRY_RESPONSE": "updated",
"AUTO_INDEX": 474
}
]
到目前为止,太好了。下一个工具是记录器工具,它运行时,而不是获取空值的默认值,它显示为
"HENRY_RESPONSE": {}
这导致批量更新在列类型上失败:
********************************************************************************
Message : Invalid column type.
Error type : DB:QUERY_EXECUTION
Element : UpdateHenry/processors/4 @ retro:retro.xml:79 (Bulk update)
Element XML : <db:bulk-update doc:name="Bulk update" doc:id="e282a24a-d585-4a53-8f0f-eff2f99e5e32" config-ref="ClarifyDev">
<db:sql>UPDATE SA.RETRO_EMAILCLERK_STAGING_UPD
SET HENRY_RESPONSE=:HENRY_RESPONSE,DATE_TIME_PROCESSED=SYSDATE
WHERE AUTO_INDEX=:AUTO_INDEX</db:sql>
</db:bulk-update>
(set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************
有人可以告诉我我在这里想念的吗?这是批量更新:
<db:bulk-update doc:name="Bulk update" doc:id="e282a24a-d585-4a53-8f0f-eff2f99e5e32" config-ref="ClarifyDev">
<db:sql >UPDATE MyTableName
SET HENRY_RESPONSE=:HENRY_RESPONSE,
DATE_TIME_PROCESSED=SYSDATE
WHERE AUTO_INDEX=:AUTO_INDEX</db:sql>
</db:bulk-update>
非常感谢