如何在Mule中将逗号分隔的字符串传递给JDBC查询

时间:2012-07-11 14:15:06

标签: mule

这里我需要将动态多个客户ID传递给mule中的select查询。所以我想出了一个逗号分隔的字符串,它保存了我的客户ID,例如:字符串custid = 1001,1002 。我正在使用groovy evalutor来获取JDBC查询的字符串值。但是我在执行查询后收到空的有效负载。此外,对于单个值字符串,如字符串Custid = 1001 ,我得到了所需的结果。那么在Mule中是否为字符串添加单引号,如'1001,1002',这会导致此问题?。

请帮我解决这个问题。另请告诉我是否有其他方法可以解决此问题?

这是我的代码段:

<jdbc:query key="getCustID" value="SELECT CUSTID,CUSTTYPE FROM CUSTINFO WHERE CUSTID IN  (#[groovy:payload.custid]) "/>

1 个答案:

答案 0 :(得分:1)

Mule用绑定参数替换表达式,如#[groovy:payload.custid],这就是为什么它不起作用:将逗号分隔值替换为单个参数。

我没有一个很好的解决方案,你想做什么。一种方法是在使用之前使用JDBC connector queries map上已解析的ID列表注册查询。您将生成一个唯一的查询名称(如UUID),以确保它仅由当前线程使用,您还需要在使用后将其从queries映射中删除,以避免内存泄漏。

这非常hacky,希望其他人会有更好的答案...