gpt4 book ai didi

java - Mule ESB MEL 表达式返回 NULL

转载 作者:行者123 更新时间:2023-12-01 23:28:46 25 4
gpt4 key购买 nike

大家早上好。

我在 JDBC ORACLE 数据库查询中使用 MEL 表达式时遇到问题。

特别是,Mule 流程接受一个 Excel 文件,该文件通过 Datamapper 在 Map 中进行转换,并且其字段用于以这种形式在数据库中进行查询:

<jdbc-ee:query key="Fill Table" value="INSERT INTO BUFF_SBIL_ZONALE (DATA_ORA,MACRO_ZONA,SEGNO_SBIL,PRZ_MSD_VEN,PRZ_MSD_ACQ,ID_BIS,FILE_NAME,DATA_LOAD)                                                 
VALUES (TO_DATE(#[map-payload:DATA_ORA], 'DD/MM/YYYY hh:mi:ss'),#[map-payload:MACROZONA],#[map-payload:SEGNO],#[map-payload:P_medioMSD_VEN],#[map-payload:P_medioMSD_ACQ],#[message.inboundProperties['correlationId']],#[message.InvocationProperty['originalFilename']],SYSDATE)"/>

查询似乎正确,但当我执行应用程序时,我收到一个异常,建议我 #[map-payload:P_medioMSD_VEN] 为 NULL(正确的是,因为在 Excel 文件中它不存在)并且 MEL 表达式无法读取 NULL 值。因此,问题不是 SQL 问题,而是不接受 NULL 数据库字段值的 MEL 问题。

有人知道如何绕过 MEL 异常以接受 mullable 值吗?

先谢谢大家了

抛出的异常是:*org.mule.api.expression.RequiredValueException:带有表达式“xy”的表达式求值器“bean”返回 null,但需要一个值。 *

最佳答案

我找到了解决方案。我写在这里只是为了那些有同样问题的人。

如果你想让 MEL 表达式值可选(即 NULL 值是正确的值),你应该写一个 '?'在 MEL 表达式的末尾。

#[map-payload:P_medioMSD_ACQ?]

输入一个“?”该值是可选的,并且接受 NULL 值

关于java - Mule ESB MEL 表达式返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19633814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com