[英]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.