Database 带IN运算符的Mule Oracle数据库连接器SQL
mule的数据库连接器有问题,我使用它进行select查询。我有一个字符串的arraylist要在参数中给出 上面提到的解决方案不适用于3.7.3 Mule ESB,我已经尝试了很多方法并进行了搜索。除了这份文件,到目前为止我还没有确定的方法 我正在使用下面的查询: 从(2,3,4)中id所在的db_表中选择* 在我的示例中,2,3,4在包含arraylist的flow变量中Database 带IN运算符的Mule Oracle数据库连接器SQL,database,mule,mule-component,Database,Mule,Mule Component,mule的数据库连接器有问题,我使用它进行select查询。我有一个字符串的arraylist要在参数中给出 上面提到的解决方案不适用于3.7.3 Mule ESB,我已经尝试了很多方法并进行了搜索。除了这份文件,到目前为止我还没有确定的方法 我正在使用下面的查询: 从(2,3,4)中id所在的db_表中选择* 在我的示例中,2,3,4在包含arraylist的flow变量中 有什么建议吗?你可以这样做。我正在使用MySQL作为示例,只需将其更改为Oracle即可 希望这有帮助您可以这样
有什么建议吗?你可以这样做。我正在使用MySQL作为示例,只需将其更改为Oracle即可
希望这有帮助您可以这样做。我正在使用MySQL作为示例,只需将其更改为Oracle即可
<set-variable variableName="CHUNKVIBLIST" value="#[new ArrayList()]" doc:name="Set CHUNKVIBLIST Variable"/>
<expression-component doc:name="Expression"><![CDATA[int chunkSize = 1000;
for (int i = 0; i < flowVars.VIBLIST.size(); i += chunkSize) { flowVars.CHUNKVIBLIST.add("'"+org.apache.commons.lang.StringUtils.join(flowVars.VIBLIST.subList(i, i + chunkSize >= flowVars.VIBLIST.size() ? flowVars.VIBLIST.size() : i + chunkSize),"','")+"'");
}]]></expression-component>
<foreach collection="#[flowVars.CHUNKVIBLIST]" doc:name="For Each matnr batch:">
<db:select config-ref="Mule_DB_Configuration" doc:name="Select statement">
<db:dynamic-query><![CDATA[SELECT DISTINCT(MATNR) FROM cated_prodrelease where MATNR IN (#[payload])]]></db:dynamic-query>
</db:select>
</foreach>
希望这有帮助
<set-variable variableName="CHUNKVIBLIST" value="#[new ArrayList()]" doc:name="Set CHUNKVIBLIST Variable"/>
<expression-component doc:name="Expression"><![CDATA[int chunkSize = 1000;
for (int i = 0; i < flowVars.VIBLIST.size(); i += chunkSize) { flowVars.CHUNKVIBLIST.add("'"+org.apache.commons.lang.StringUtils.join(flowVars.VIBLIST.subList(i, i + chunkSize >= flowVars.VIBLIST.size() ? flowVars.VIBLIST.size() : i + chunkSize),"','")+"'");
}]]></expression-component>
<foreach collection="#[flowVars.CHUNKVIBLIST]" doc:name="For Each matnr batch:">
<db:select config-ref="Mule_DB_Configuration" doc:name="Select statement">
<db:dynamic-query><![CDATA[SELECT DISTINCT(MATNR) FROM cated_prodrelease where MATNR IN (#[payload])]]></db:dynamic-query>
</db:select>
</foreach>
=flowVars.VIBLIST.size()?flowVars.VIBLIST.size();
}]]>
2021年3月1日更新旧答案是我的初学者时代,我刚刚决定
要更新我的答案并使用上面的更改,您应该创建有效负载
包含逗号分隔的字符串,以使用中使用的答案
语句作为动态查询
=flowVars.VIBLIST.size()?flowVars.VIBLIST.size();
}]]>
2021年3月1日更新旧答案是我的初学者时代,我刚刚决定
要更新我的答案并使用上面的更改,您应该创建有效负载
包含逗号分隔的字符串,以使用中使用的答案
语句作为动态查询
事实上,我正在处理字符串列表,我刚才在我的问题上给出了整数的例子。但我在数据库中搜索的数据类型是VARCHAR,所以这不起作用,但它当然适用于数字数据类型。谢谢你们的友好回答。事实上,我正在处理字符串列表,我刚才在我的问题上给出了整数的例子。但我在数据库中搜索的数据类型是VARCHAR,所以这不起作用,但它当然适用于数字数据类型。谢谢您的友好回答。您如何用这种方法解决SQL注入的问题?我相信字符串连接不是创建SQL语句的最佳实践。使用SQL注入更新了答案。如何使用这种方法解决SQL注入的问题?我相信字符串连接不是创建SQL语句的最佳实践。使用SQL注入更新了答案。