Mule JDBC动态IN子句数据不匹配

Mule JDBC动态IN子句数据不匹配,mule,Mule,我正在尝试使用IN for子句和jdbc出站更新一列中的多条记录 update someTable set aColumn = myvalue where bColumn in(id_1, id_2) 我正在设置一个变量,它会返回我要查找的id(数字),但是当试图将数字替换到update语句中时,它会抱怨数据类型不匹配。我尝试了这两种设置变量,但都没有成功。(jdbc出站在其下方) 使用Mule 3.3.1 CE我现在正在努力解决这个问题。你在这方面有什么进展吗?@Rondo是的,这就是我

我正在尝试使用IN for子句和jdbc出站更新一列中的多条记录

update someTable set aColumn = myvalue where bColumn in(id_1, id_2)
我正在设置一个变量,它会返回我要查找的id(数字),但是当试图将数字替换到update语句中时,它会抱怨数据类型不匹配。我尝试了这两种设置变量,但都没有成功。(jdbc出站在其下方)



使用Mule 3.3.1 CE

我现在正在努力解决这个问题。你在这方面有什么进展吗?@Rondo是的,这就是我所做的:希望这有帮助……谢谢你的回复。。。看起来像我拥有的,我一直从oracle jdbc驱动程序中获取“java.sql.SQLException:Invalid column type”。。。我的sql in子句是“…和e.event_id in(#[message.payload])”。。查询中唯一的参数。调试显示有效负载是一个对象[…]。。。。事件id是一个数字。。。stumped(编辑:对象都是整数的实例)。。。。我将有效负载转换为int[],对结果没有影响是的,这说明您仍然会得到sqlExceptions,因为您传递的是一个int数组,而这不是查询所期望的。我就是这样做的:在您的转换器中,将您的id列表构建为一个字符串,因此从int[]构建一个带有逗号分隔值的字符串:“2,5,8”,然后将其设置为a with:然后在查询中传递此变量,如我上面给出的示例所示。
<set-variable variableName="numbers" value="#[message.payload.numbers;int]" 
    doc:name="set numbers var" />

<set-variable variableName="numbers" value="#[message.payload.someNumbers]" 
   doc:name="set numbers var" />

<jdbc:outbound-endpoint exchange-pattern="one-way" queryTimeout="-1" 
    doc:name="update timestamp" 
    connector-ref="AS400" queryKey="updateCellTblTimestamp">
   <jdbc:query key="updateCellTblTimestamp" 
      value="update mytbl set mycolumn = somevalue where myid in(#[flowVars.numbers]) "/>
</jdbc:outbound-endpoint>