Mule 3.7 - 数据库中存储过程的批量更新模式

Mule 3.7 - Bulk update mode for stored procedures in database

当我在 Mule 的数据库组件中使用存储过程时,有什么方法可以让我拥有批量模式。看起来当前版本只支持参数化查询。有什么解决办法吗?我正在尝试与下面类似的东西。

<db:insert config-ref="" bulkMode="true" doc:name="Database">
        <db:parameterized-query>
            <![CDATA[INSERT INTO TABLE (ID, BILLING_NUMBER__C, TYPE)  
            VALUES (#[payload.Id], #[payload.Billing_Number__c], #[payload.type]);]]>
        </db:parameterized-query>
    </db:insert>

但是我想用一个我没有看到 bulkMode 标志的存储过程来替换查询。请帮忙。 谢谢

你可以试试类似这样的:

<foreach doc:name="For Each">
        <db:stored-procedure config-ref="Generic_Database_Configuration" doc:name="Call Stored Procedure Function">
            <db:parameterized-query><![CDATA[CALL callFunction(:name,:id_serv);]]></db:parameterized-query>
            <db:in-param name="display_name" type="VARCHAR" value="#[payload.name]"/>
            <db:out-param name="id_serv" type="INTEGER"/>
        </db:stored-procedure>
</foreach>

或者你可以把foreach改成Mule批处理的批处理步骤。

我解决了这个问题。看起来我仍然可以通过选择 "Update" 函数使用存储过程(使用新的数据库组件)进行批量更新,但使用动态查询,这是一个存储过程。它允许我检查批量更新选项并接受一个数组作为输入。

<db:update config-ref="L360_Database_Configuration" bulkMode="true" doc:name="Sync_LoanAppDB">
    <db:parameterized-query><![CDATA[${sp_name}]]></db:parameterized-query>
</db:update>