2016-11-21 75 views
0

当我尝试在数据库连接器中使用动态表名称(例如#[flowVars.sfdcTableName])时的“Bulk Mode”时,它失败。它工作正常,如果我硬编码参数化查询中的表名称。有没有人遇到过这个问题?任何人都可以请告诉如何解决这个问题,以动态表名称使用“批量模式”?非常感谢。第一个工作,第二个失败。Mule ESB - 具有动态表名称的数据库连接器批量模式

<db:insert config-ref="APP_Database_Configuration" bulkMode="true" doc:name="Database"> 
    <db:parameterized-query> 
    <![CDATA[INSERT INTO ACCOUNT (Id) Values (#[payload.Id])]]> 
    </db:parameterized-query> 
    </db:insert> 

    <db:insert config-ref="APP_Database_Configuration" bulkMode="true" doc:name="Database"> 
    <db:parameterized-query> 
    <![CDATA[INSERT INTO #[flowVars.sfdcTableName] (Id) Values (#[payload.Id])]]> 
    </db:parameterized-query> 
    </db:insert> 
+0

有在JIRA报道与参数化查询批量模式的几个问题https://www.mulesoft.org/jira/browse/MULE-7416和https://www.mulesoft.org/jira /浏览/ MULE-8283确保你没有碰到那些...你使用哪种骡子版本? –

+0

谢谢,动态表名不会与参数化查询一起使用,但仅适用于动态查询。在使用动态查询调用数据库连接器之前,我必须使用Groovy构建动态查询。它为我工作。 –

回答

0

这可能听起来很疯狂..但尝试用单引号包装MEL。我知道。这很愚蠢,但它在过去为我解决了类似的问题。

否则您的数据库名称FlowVar没有被正确设置,或者它对您的查询无效。

0

感谢Anirban Sen Chowdhary和StoicNZ,动态表名不会与参数化查询一起使用,但仅适用于动态查询。在使用动态查询调用数据库连接器之前,我必须使用Groovy构建动态查询。它效果很好!!

SJ