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 <[email protected]> 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 <[email protected]>:
> >
> > 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
>