问题在于插入查询,只有两个步骤1)从table1中选择值2)在table2中插入这些值。
这里#[map-payload:ID]在jdbc mule CE中工作正常,但在jdbc-ee mule EE中没有。
以下是我的代码,
<flow name="allflows_dev_eeFlow">
<poll doc:name="Poll">
<fixed-frequency-scheduler frequency="3000"/>
<db:select config-ref="Generic_Database_Configuration" doc:name="Database1">
<db:parameterized-query><![CDATA[SELECT * from table1]]></db:parameterized-query>
</db:select>
</poll>
<db:insert config-ref="Generic_Database_Configuration" doc:name="EBS Database">
<db:parameterized-query><![CDATA[INSERT INTO table2 (ID, Company, Status) VALUES (#[map-payload:ID], #[map-payload:Company], #[map-payload:Status])]]></db:parameterized-query>
</db:insert>
<logger message="Order1 #[payload[0].ID] #[map-payload:ID]" level="INFO" doc:name="Logger"/>
</flow>
答案 0 :(得分:0)
不要使用map-payload:
:它是旧的和已弃用的表达式评估语言。改为使用MEL,即:
<db:parameterized-query><![CDATA[INSERT INTO table2 (ID, Company, Status)
VALUES (#[message.payload[0].ID], #[message.payload[0].Company], #[message.payload[0].Status])]]>
</db:parameterized-query>