簡體   English   中英

Mule ESB MEL表達式返回NULL

[英]Mule ESB MEL Expression returns NULL

大家早上好。

我在JDBC ORACLE數據庫查詢中使用MEL表達式時遇到問題。

特別是,Mule流接受一個通過Datamapper在Map中轉換的Excel文件,並且其字段用於以這種形式在數據庫中進行查詢:

<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異常才能接受可修改的值嗎?

在此先感謝大家

引發的異常是:* org.mule.api.expression.RequiredValueException:表達式評估器“ bean”與表達式“ xy”返回null,但需要一個值。 *

我找到了解決方案。 我在這里只為有同樣問題的某人寫東西。

如果要使MEL表達式值可選(即NULL值是正確的值),則應寫一個'?' MEL表達式的末尾。

#[map-payload:P_medioMSD_ACQ?]

放一個“?” 該值是可選的,並且接受NULL值

在將它們傳遞給MEL之前,請檢查字段是否NOT NULL 如果您知道某些字段將始終為NULL ,則根本不用在插入查詢中指定它,它將在db中獲得默認值NULL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM