插入参数化查询

时间:2017-01-18 18:27:46

标签: mule mule-component mule-module-jpa

我想在对象列表上执行插入操作。

我的插入查询如下所示

insert into table name (#[flowVars['columnNames']]) values (#[flowVars['values']]) 
  

#[flowVars [' columnNames']包含逗号分隔的columnNames,例如col1,col2

#[flowVars['values'] contains #[payload.?val1], #[payload.?val2]

我收到以下错误。

列名无效' @ P0'。 (com.microsoft.sqlserver.jdbc.SQLServerException)

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我建议您调试并检查是否为flowVars [' columnNames']和flowVars ['值']设置了正确的值,您也可以将其放入记录器中在日志中看到它的价值。然后检查上面的输出是否与此插入操作所需的列名匹配。

答案 1 :(得分:1)

恕我直言,上面的查询不适合参数化查询。因为构造的查询将被Mule错误地解释。它可能是这样构造的:insert into tableName ('col1,col2') values ('\'val1\',\'val2\'')

因此,我建议将查询类型更改为:动态