I am still struggling to make it work. The returning clause works fine if used 
with a single insert but I need to use a batch insert and then it just inserts 
values and does not return anything. Is there a way how to get around this?

the values are taken from the body: [{new_token=5}, {new_token=8}] 

route:
from(direct:input)
                .bean(tokenService, "prepareIDExtraction")
                .to(ENDPOINT_EXTRACT_ID+ "?batch=true")
                .to(direct:output);
sql:
INSERT INTO dim_token(token) values(:#new_token)
ON CONFLICT (token)
DO UPDATE SET token=excluded.token returning id, token






On 2021/07/12 13:31:26, Gerald Mixa <gerald.m...@gmail.com> wrote: 
> Hello,
> Are you sure that your Jdbc driver does really return a result after 
> executing this DML statement?
> Some Jdbc drivers do not return this correctly. Maybe do a little manual test 
> with your Jdbc drivers do not handle this in a correct way!
> 
> Greetings 
> 
> Gerald
> Von meinem iPhone gesendet
> 
> > Am 12.07.2021 um 14:33 schrieb Zuzana Krenkova <zuzana.krenk...@yoso.fi>:
> > 
> > Is it possible to use PostgreSQL insert with returning clause with Camel 
> > sql component? This insert statement works fine on its own (inserting and 
> > also returning id and token), but when used in a Camel route, the insert 
> > gets processed but exchange body is returned empty. Why?
> > 
> > INSERT INTO my_table(token) values(:#new_token)
> > ON CONFLICT (token)
> > DO UPDATE SET token=excluded.token returning id, token
> 

Reply via email to