Hi You need Camel 2.11 or better to use named parameters as said here http://camel.apache.org/sql-component
On Fri, Nov 14, 2014 at 3:49 AM, contactreji <contactr...@gmail.com> wrote: > Hi > > I am trying to insert a record into the camel database. I have no errors > when I hard code the value like *<to uri="sql:INSERT INTO testtable VALUES > ('Samson')" />* > > > I was wondering why I get following error when I have following camel > Spring DSL line > > *<setHeader headerName="data"> > <constant>Samson</constant> > </setHeader> > <to uri="sql:INSERT INTO testtable VALUES (#:data)" />* > > * > org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; > bad SQL grammar [INSERT INTO testtable VALUES (?:data)]; nested exception is > java.sql.SQLException: No value specified for parameter 1 > at > org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:98)[spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE] > at > org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)[spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE] > at > org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)[spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE] > at > org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)[spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE] > at > org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:603)[spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE] > at > org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:615)[spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE] > at > org.apache.camel.component.sql.SqlProducer.process(SqlProducer.java:48)[camel-sql-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:122)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:298)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.SendProcessor.process(SendProcessor.java:117)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.fabric.FabricTraceProcessor.process(FabricTraceProcessor.java:81)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:334)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:46)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:308)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.Pipeline.process(Pipeline.java:117)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:46)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:135)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:63)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at java.util.TimerThread.mainLoop(Timer.java:555)[:1.7.0_45] > at java.util.TimerThread.run(Timer.java:505)[:1.7.0_45] > [mel-1) thread #0 - timer://foo] TimerConsumer WARN Error > processing exchange. Exchange[Message: [Body is null]]. Caused by: > [org.springframework.jdbc.BadSqlGrammarException - > PreparedStatementCallback; bad SQL grammar [INSERT INTO testtable VALUES > (?:data)]; nested exception is java.sql.SQLException: No value specified for > parameter 1] > org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; > bad SQL grammar [INSERT INTO testtable VALUES (?:data)]; nested exception is > java.sql.SQLException: No value specified for parameter 1 > at > org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:98)[spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE] > at > org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)[spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE] > at > org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)[spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE] > at > org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)[spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE] > at > org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:603)[spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE] > at > org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:615)[spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE] > at > org.apache.camel.component.sql.SqlProducer.process(SqlProducer.java:48)[camel-sql-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:122)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:298)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.SendProcessor.process(SendProcessor.java:117)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.fabric.FabricTraceProcessor.process(FabricTraceProcessor.java:81)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:334)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:46)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at > org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:308)[camel-core-2.10.0.redhat-60024.jar:2.10.0.redhat-60024] > at org.apach* > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/Camel-SQL-component-Insert-Operation-tp5759079.html > Sent from the Camel - Users mailing list archive at Nabble.com. -- Claus Ibsen ----------------- Red Hat, Inc. Email: cib...@redhat.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen hawtio: http://hawt.io/ fabric8: http://fabric8.io/