使用 Camel 2.13.1 和 Spring 2.7.11 并在尝试使用 sql 组件运行更新查询时收到 SQL 异常。下面是如何将我的更新查询添加到路由中,并且我正在使用正文中的 java.util.Map 将输入参数值传递给该语句。
主要问题:如果我在准备好的语句中只有一个输入参数,那么它工作正常.. 如果我在下面的更新查询中有多个,那么它会因 sql 异常而失败
<route id="ABC" >
<from uri="direct:sqlInsert" />
<process ref="sqlProcessor" />
<to uri="sql:UPDATE myTable set key1=:#value1, key2=:#value2, key3=:#value3 where req1=:#reqValue1" />
</route>
即使我使用骆驼JDBC也面临同样的问题
<route id="ABC" >
<from uri="direct:sqlInsert" />
<process ref="sqlProcessor" />
<setBody>
<constant>UPDATE myTable set key1=:?value1, key2=:?value2, key3=:?value3 where req1=:?reqValue1</constant>
</setBody>
<to uri="jdbc:customDatasource?useHeadersAsParameters=true" />
</route>
这是我一直看到的 SQL 异常..
JMS 消息侦听器的执行失败。引起:[ org.apache.camel.RuntimeCamelException - org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; 糟糕的 SQL 语法 []; 嵌套异常是 java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在 ]: org.apache.camel.RuntimeCamelException: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; 糟糕的 SQL 语法 []; 嵌套异常是 java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在
注意:数据库连接和数据库表没有问题