当我尝试使用"批量模式"使用数据库连接器中的动态表名称(例如:#[flowVars.sfdcTableName]),它会失败。如果我在参数化查询中硬编码表名,它工作正常。有人遇到过这个问题吗?任何人都可以告诉我们如何解决这个问题?#34;批量模式"用动态表名?非常感谢。第一个工作,第二个工作失败。
<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 :(得分:0)
这可能听起来很疯狂..但是尝试用单引号包装MEL。我知道。这很愚蠢,但它在过去已经为我解决了类似的问题。
否则您的数据库名称FlowVar未正确设置或对您的查询无效。
答案 1 :(得分:0)
感谢Anirban Sen Chowdhary和StoicNZ,动态表名称不适用于参数化查询,但仅适用于动态查询。在使用动态查询调用数据库连接器之前,我必须使用Groovy构建动态查询。它工作得很好!!。
SJ